diff --git a/_service b/_service
index 741381e..7c36393 100644
--- a/_service
+++ b/_service
@@ -2,21 +2,23 @@
https://github.com/denoland/rusty_v8
git
-
-
-
- v129.0.0
- 129.0.0
+ v0.106.0
+ 0.106.0
.git
.github
.gitignore
.prettierrc.json
.rustfmt.toml
-
-
- *.tar
- xz
+
+
+ rusty_v8*.tar
+ zst
+
+
+ rusty_v8
+ zst
+ false
diff --git a/cargo_config b/cargo_config
deleted file mode 100644
index 97852b5..0000000
--- a/cargo_config
+++ /dev/null
@@ -1,5 +0,0 @@
-[source.crates-io]
-replace-with = "vendored-sources"
-
-[source.vendored-sources]
-directory = "vendor"
diff --git a/compiler-rt-adjust-paths.patch b/compiler-rt-adjust-paths.patch
index 7fe5758..07de210 100644
--- a/compiler-rt-adjust-paths.patch
+++ b/compiler-rt-adjust-paths.patch
@@ -1,8 +1,8 @@
diff --git a/build/config/clang/BUILD.gn b/build/config/clang/BUILD.gn
-index d4de2e0cca0..57359c32121 100644
+index fcca59b0f..fdf14f306 100644
--- a/build/config/clang/BUILD.gn
+++ b/build/config/clang/BUILD.gn
-@@ -130,12 +130,15 @@ template("clang_lib") {
+@@ -192,12 +192,15 @@ template("clang_lib") {
} else if (is_linux || is_chromeos) {
if (current_cpu == "x64") {
_dir = "x86_64-unknown-linux-gnu"
@@ -18,7 +18,7 @@ index d4de2e0cca0..57359c32121 100644
} else {
assert(false) # Unhandled cpu type
}
-@@ -166,6 +169,11 @@ template("clang_lib") {
+@@ -228,6 +231,11 @@ template("clang_lib") {
assert(false) # Unhandled target platform
}
diff --git a/deno-v8-arm.patch b/deno-v8-arm.patch
index 85729be..73227e7 100644
--- a/deno-v8-arm.patch
+++ b/deno-v8-arm.patch
@@ -19,3 +19,4 @@
}
let target_triple = env::var("TARGET").unwrap();
+
diff --git a/fix-prefix.patch b/fix-prefix.patch
deleted file mode 100644
index 244d94e..0000000
--- a/fix-prefix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Fix usr prefix
-index fcca59b..02480f8 100644
---- a/build/config/clang/BUILD.gn
-+++ b/build/config/clang/BUILD.gn
-@@ -171,7 +171,7 @@ template("clang_lib") {
- config(target_name) {
- _dir = ""
- _libname = invoker.libname
-- _prefix = "lib"
-+ _prefix = "lib64"
- _suffix = ""
- _ext = "a"
- if (is_win) {
diff --git a/rusty_v8-0.106.0.tar.zst b/rusty_v8-0.106.0.tar.zst
new file mode 100644
index 0000000..820d641
--- /dev/null
+++ b/rusty_v8-0.106.0.tar.zst
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4a0b5a8c36bcaea3872d5ffb1a098b8213cb91001c99910fca1d7d3659a8f6a5
+size 73511874
diff --git a/rusty_v8-129.0.0.tar.xz b/rusty_v8-129.0.0.tar.xz
deleted file mode 100644
index e7cacb1..0000000
--- a/rusty_v8-129.0.0.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:89af37dbb408fb9e7b1d433487d290ee09fc77284cd2e12f309e6bfddd2c41a6
-size 58757856
diff --git a/rusty_v8-rpmlintrc b/rusty_v8-rpmlintrc
new file mode 100644
index 0000000..fe46f99
--- /dev/null
+++ b/rusty_v8-rpmlintrc
@@ -0,0 +1,11 @@
+# This is not C, dear
+addFilter("E: devel-file-in-non-devel-package")
+addFilter("E: bin-sh-syntax-error")
+addFilter("E: env-script-interpreter")
+addFilter("E: zero-length")
+addFilter("E: version-control-internal-file")
+addFilter("E: wrong-script-interpreter")
+addFilter("E: script-without-shebang")
+addFilter("E: non-executable-script")
+addFilter("W: position-independent-executable-suggested")
+addFilter("W: potential-bashisms")
diff --git a/rusty_v8.changes b/rusty_v8.changes
index 3ad3c61..671a851 100644
--- a/rusty_v8.changes
+++ b/rusty_v8.changes
@@ -1,3 +1,37 @@
+-------------------------------------------------------------------
+Thu Oct 3 10:10:51 UTC 2024 - Soc Virnyl Estela
+
+- update to version 0.106.0 -> NOTICE: this version will become 129.0.0 in the future
+ * feat: cppgc NameProvider
+ * re-add deprecated cppgc api
+ * Rolling to V8 12.9.202.13
+ * Rolling to V8 12.9.202.12
+ * feat: add Module::is_graph_async
+ * download ninja/gn from cipd
+ * Rolling to V8 12.9.202.11
+ * Update to v0.105.1
+ * Rolling to V8 12.9.202.9
+ * Rolling to V8 12.9.202.8
+ * Rolling to V8 12.9.202.7
+ * fix: Check for null pointer returned by `ValueSerializer::Release`
+ * Allow `ValueSerializerImpl` and `ValueDeserializerImpl` impls to be re-entrant
+ * remove unused submodule
+ * disable pointer compression
+ * Backport ESM TLA fixes
+ * Rolling to V8 12.9.202.5
+ * feat: add InspectorClient::ensureDefaultContextInGroup
+ * chore: respect explicitly set RUSTY_V8_SRC_BINDING_PATH
+ * Disable relative vtable on Android
+ * Rolling to V8 12.9.202.4
+- Add ./rusty_v8-rpmlintrc. This is not C
+- Make deno use this as a crate path by updating deno's Cargo.toml
+- GN is looking for clang at lib and not lib64.
+ * Use sed to change lib -> lib64
+- update _service file
+- remove vendor.tar.xz
+- use a new vendor tarball vendor.tar.zst
+- remove cargo_config
+
-------------------------------------------------------------------
Thu Aug 22 20:25:50 UTC 2024 - Avindra Goolcharan
diff --git a/rusty_v8.obsinfo b/rusty_v8.obsinfo
new file mode 100644
index 0000000..d09b700
--- /dev/null
+++ b/rusty_v8.obsinfo
@@ -0,0 +1,4 @@
+name: rusty_v8
+version: 129.0.0
+mtime: 1706983689
+commit: ab019251a4c45ee4edb4f7415eec762a589d87f8
diff --git a/rusty_v8.spec b/rusty_v8.spec
index 6c24ec7..d7acb04 100644
--- a/rusty_v8.spec
+++ b/rusty_v8.spec
@@ -15,25 +15,29 @@
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
+%global __requires_exclude_from ^%{_libdir}/crates/rusty_v8/.*$
Name: rusty_v8
-Version: 129.0.0
+Version: 0.106.0
Release: 0
Summary: Build tooling for Deno (do not install or use!)
License: MIT
Group: Productivity/Other
URL: https://github.com/denoland/rusty_v8
-Source0: %{name}-%{version}.tar.xz
-Source1: vendor.tar.xz
-Source2: cargo_config
+Source0: %{name}-%{version}.tar.zst
+Source1: vendor.tar.zst
Patch0: deno-v8-arm.patch
-Patch1: https://gitlab.archlinux.org/archlinux/packaging/packages/chromium/-/raw/main/compiler-rt-adjust-paths.patch
-#Patch2: fix-prefix.patch
+# Based on https://gitlab.archlinux.org/archlinux/packaging/packages/chromium/-/raw/main/compiler-rt-adjust-paths.patch
+Patch1: compiler-rt-adjust-paths.patch
BuildRequires: cargo-packaging
+BuildRequires: cargo
+BuildRequires: sccache
BuildRequires: clang
+BuildRequires: lld
+BuildRequires: zstd
BuildRequires: gn
-#BuildRequires: lld
BuildRequires: llvm
+BuildRequires: fdupes
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: python3-base
@@ -41,10 +45,15 @@ BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gmodule-2.0)
BuildRequires: pkgconfig(gobject-2.0)
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: %{rust_tier1_arches}
%ifarch ppc64 # wants g++ for some reason
BuildRequires: gcc-c++
%endif
+
%description
V8 build tooling for Deno. This represents all of the common
cruft that is dragged along into the deno build from V8,
@@ -52,30 +61,57 @@ Chromium, etc.
%prep
%autosetup -a1 -p1
-mkdir -p .cargo
-cp %{SOURCE2} .cargo/config
-rm Cargo.lock
+# Keeping this ifarch in case someone tries to build 32 bit
+# which is not our problem
+%ifarch x86_64 || x86_64_v3 || aarch64
+# lib to lib64
+sed -i 's|lib/clang|lib64/clang|g' build/config/clang/BUILD.gn
+%endif
%build
-#https://github.com/denoland/rusty_v8/#build-v8-from-source
+# 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/')
+# See https://github.com/denoland/rusty_v8/#build-v8-from-source
export V8_FROM_SOURCE=1
export CLANG_BASE_PATH=%{_prefix}
-# note: built in debug mode to
-# emit symbols for linker in deno build
-## is_debug=true
-export GN_ARGS=""
-#export RUST_BACKTRACE=full
-%{__cargo} build %{__cargo_common_opts}
-
-# -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;compilER-RT"
+export GN_ARGS="clang_version=${CLANG_VERSION} use_lld=true"
+export CC=clang
+export CXX=clang++
+export CFLAGS="%{optflags} -Wno-unknown-warning-option"
+export CXXFLAGS="%{optflags} -Wno-unknown-warning-option"
+export RUST_BACKTRACE=full
+%{cargo_build}
%install
-mkdir -p %{buildroot}%{_libdir}
-cp target/debug/*.rlib %{buildroot}%{_libdir}
+mkdir -p %{buildroot}%{_libdir}/crates/
+# We are doing this so we can manipulate deno's Cargo.toml file later.
+# The previous deno build does not use this and it does not make sense.
+# Let's just use this to experiment rusty_v8 builds and patches before
+# updating deno ;) it's chonky though
+cp -rv $PWD \
+ %{buildroot}%{_libdir}/crates/rusty_v8
+
+cp target/release/*.rlib %{buildroot}%{_libdir}
+
+# we don't need those
+pushd %{buildroot}%{_libdir}/crates/rusty_v8
+rm -rf .github
+rm -rf vendor
+rm -rf target
+%fdupes $PWD
+popd
%files
%license LICENSE
%doc README.md
%{_libdir}/libv8.rlib
+%dir %{_libdir}/crates/
+%dir %{_libdir}/crates/rusty_v8
+%dir %{_libdir}/crates/rusty_v8/.cargo
+%{_libdir}/crates/rusty_v8/*
+%{_libdir}/crates/rusty_v8/.cargo/config.toml
+%{_libdir}/crates/rusty_v8/.clang-format
+%{_libdir}/crates/rusty_v8/.gitmodules
+%{_libdir}/crates/rusty_v8/.gn
%changelog
diff --git a/vendor.tar.xz b/vendor.tar.xz
deleted file mode 100644
index 2bd39c2..0000000
--- a/vendor.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:090b865f6f4f136c560e01830a1b8d2277e3426fe0e16a5f5c075117881d60cd
-size 19403984
diff --git a/vendor.tar.zst b/vendor.tar.zst
new file mode 100644
index 0000000..74f6a57
--- /dev/null
+++ b/vendor.tar.zst
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4ce6859f2455bab01f2863b1c9c15d6356d307815310ff2b2fd75f20e83aebcc
+size 22350685