1 Commits

Author SHA256 Message Date
206e840a62 Try to fix build 2025-11-14 13:55:25 +01:00
13 changed files with 45 additions and 183 deletions

View File

@@ -1,34 +1,20 @@
<?xml version="1.0"?>
<?xml version="1.0" encoding="UTF-8"?>
<constraints>
<hardware>
<disk>
<size unit="G">30</size>
</disk>
<physicalmemory>
<size unit="G">18</size>
<size unit="G">8</size>
</physicalmemory>
</hardware>
<!-- Use a fast aarch64 host to avoid log idle timeout -->
<overwrite>
<conditions>
<arch>aarch64</arch>
</conditions>
<hardware>
<cpu>
<flag>asimdrdm</flag>
<flag>asimdrdm</flag>
</cpu>
<memory>
<size unit="G">11</size>
</memory>
</hardware>
</overwrite>
<overwrite>
<conditions>
<arch>ppc64le</arch>
</conditions>
<hardware>
<disk>
<size unit="G">50</size>
</disk>
</hardware>
<jobs>5</jobs>
</hardware>
</overwrite>
</constraints>

View File

@@ -1,7 +1,7 @@
<services>
<service name="cargo_vendor" mode="manual">
<param name="src">https://github.com/denoland/rusty_v8</param>
<param name="revision">v145.0.0</param>
<param name="revision">v137.2.1</param>
<param name="versionrewriteregex">^v?(.*)</param>
<param name="versionrewritepattern">$1</param>
<param name="compression">zst</param>

Binary file not shown.

View File

@@ -1,7 +1,7 @@
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 @@
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 @@
} else if (is_linux || is_chromeos) {
if (current_cpu == "x64") {
_dir = "x86_64-unknown-linux-gnu"
@@ -14,18 +14,17 @@ diff -ruN rusty_v8-145.0.0.orig/build/config/clang/BUILD.gn rusty_v8-145.0.0/bui
} else if (current_cpu == "arm64") {
_dir = "aarch64-unknown-linux-gnu"
+ _suffix = "-aarch64"
} else if (current_cpu == "loong64") {
_dir = "loongarch64-unknown-linux-gnu"
} else if (current_cpu == "riscv64") {
@@ -223,7 +226,10 @@
} else {
} else {
assert(false) # Unhandled cpu type
}
@@ -237,6 +240,10 @@
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" ]

View File

@@ -1,15 +1,13 @@
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 @@
--- ./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
if target_arch == "aarch64" {
gn_args.push(r#"target_cpu="arm64""#.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());
}
- 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());
@@ -21,3 +19,4 @@ diff -ruN rusty_v8-145.0.0.orig/build.rs rusty_v8-145.0.0/build.rs
}
let target_triple = env::var("TARGET").unwrap();

View File

@@ -1,25 +0,0 @@
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_<os/arch>)`

BIN
rusty_v8-137.2.1.tar.zst LFS Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -1,7 +1,4 @@
# 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")

View File

@@ -1,44 +1,3 @@
-------------------------------------------------------------------
Thu Feb 19 01:20:50 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
- Remove generated directory called "false"
-------------------------------------------------------------------
Tue Feb 17 11:27:38 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
- Update _constraints. Set physical memory to 18GB
-------------------------------------------------------------------
Tue Feb 17 08:59:43 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
- Remove unknown GN arg system_zlib
-------------------------------------------------------------------
Tue Feb 17 07:15:10 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
- Cleanup specfile
- Copy _constraints from chromium
- Try with mold if tumbleweed
- Test with thin LTO and limit our debug info because it still OOMs
- update GN_ARGS
- Update _constraints. Set physical memory to 16GB
- It seems binutils is required if we want to use the host toolchain
- Remove rust-src as build requirement
-------------------------------------------------------------------
Sun Feb 15 15:59:49 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
- Remove gcc switch. Set clang minver to 19. Ensure we use the LLVM toolchain
and not GCC for the C compiler. Only pp64 requires gcc-c++
-------------------------------------------------------------------
Sun Feb 15 00:38:48 UTC 2026 - Soc Virnyl Estela <uncomfyhalomacro@opensuse.org>
- Update to version 145.0.0
- Add disable-rust-toolchain-download.patch
- 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 <uncomfyhalomacro@opensuse.org>

4
rusty_v8.obsinfo Normal file
View File

@@ -0,0 +1,4 @@
name: rusty_v8
version: 135.1.0
mtime: 1742748458
commit: 9cd584266ff1150c7b30d8b9e792643819ef9431

View File

@@ -16,24 +16,10 @@
#
%global _min_clang_version 19
%global __requires_exclude_from ^%{_libdir}/crates/rusty_v8/.*$
%if 0%{?suse_version} > 1600
%bcond_without mold
%else
%bcond_with mold
%endif
%if %{with mold}
%global build_rustflags "-C" "linker=clang++" "-C" "link-arg='-fuse-ld=/usr/bin/mold -Wl,-z,relro,-z,now,-zstack-size=8388608'" "-C" "debuginfo=2" "-C" "incremental=false" "-C" "strip=none" "-A" "warnings"
%else
%global build_rustflags "-C" "linker=clang++" "-C" "link-arg='-fuse-ld=/usr/bin/ld.lld -Wl,-z,relro,-z,now,-zstack-size=8388608'" "-C" "debuginfo=2" "-C" "incremental=false" "-C" "strip=none" "-A" "warnings"
%endif
Name: rusty_v8
Version: 145.0.0
Version: 137.2.1
Release: 0
Summary: Build tooling for Deno (do not install or use!)
License: MIT
@@ -41,29 +27,21 @@ 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: clang >= %{_min_clang_version}
BuildRequires: clang-devel >= %{_min_clang_version}
BuildRequires: llvm >= %{_min_clang_version}
BuildRequires: llvm-devel >= %{_min_clang_version}
BuildRequires: lld >= %{_min_clang_version}
%if 0%{?suse_version} > 1600
BuildRequires: mold
%endif
BuildRequires: binutils
BuildRequires: clang19
BuildRequires: libstdc++6-devel-gcc14
BuildRequires: fdupes
BuildRequires: gn
BuildRequires: lld19
BuildRequires: llvm19
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: python3-base
BuildRequires: rust-bindgen
BuildRequires: zstd
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gmodule-2.0)
@@ -72,7 +50,7 @@ BuildRequires: pkgconfig(gthread-2.0)
BuildRequires: pkgconfig(gthread-2.0)
BuildRequires: pkgconfig(icu-i18n)
# Rusty V8 does not guarantee builds for 32 bit and ppc
ExclusiveArch: x86_64 x86_64_v3
ExclusiveArch: %{rust_tier1_arches}
%ifarch ppc64 # wants g++ for some reason
BuildRequires: gcc-c++
%endif
@@ -90,46 +68,19 @@ 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
%ifarch aarch64
export RUSTC_BOOTSTRAP=1
%endif
# 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++
export AR=ar NM=nm
# 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 CFLAGS="%{optflags} -Wno-unknown-warning-option"
export CXXFLAGS="%{optflags} -Wno-unknown-warning-option"
# https://www.chromium.org/developers/gn-build-configuration
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}
v8_symbol_level=0
custom_toolchain=\"//build/toolchain/linux/unbundle:default\"
host_toolchain=\"//build/toolchain/linux/unbundle:default\"
fatal_linker_warnings=false
is_debug=false
use_system_libffi=true
use_custom_libcxx=false
use_sysroot=false
"
export EXTRA_GN_ARGS="use_custom_libcxx=false"
# Included limited debug info.
export CARGO_PROFILE_RELEASE_DEBUG=1
# Use "thin" instead of "fat" to speed up builds (it costs +4% binary size).
export CARGO_PROFILE_RELEASE_LTO="thin"
export RUST_BACKTRACE=full
%{cargo_build}
%install
@@ -148,16 +99,11 @@ pushd %{buildroot}%{_libdir}/crates/rusty_v8
rm -rf .github
rm .prettierrc.json
rm .rustfmt.toml
rm -rf false
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

BIN
vendor.tar.zst LFS

Binary file not shown.