git: 60f1eb45666d - main - lang/v8: Fix fetch by fetching sub-dependencies from GitHub mirror

From: Xin LI <delphij_at_FreeBSD.org>
Date: Sun, 04 Oct 2026 18:44:45 UTC
The branch main has been updated by delphij:

URL: https://cgit.FreeBSD.org/ports/commit/?id=60f1eb45666d3820d35ac683d3ff64a534d17d5b

commit 60f1eb45666d3820d35ac683d3ff64a534d17d5b
Author:     Xin LI <delphij@FreeBSD.org>
AuthorDate: 2026-10-04 18:44:40 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2026-10-04 18:44:40 +0000

    lang/v8: Fix fetch by fetching sub-dependencies from GitHub mirror
    
    The +archive tarballs on chromium.googlesource.com are generated on
    the fly with the time of the request as the mtime of every entry,
    and the generated tarballs are not reproducible, so their size and
    checksum change with each download and fetch fails with a size
    or checksum mismatch.
    
    To address this, fetch all sub-dependencies with GH_TUPLE from the
    unofficial chromium-full-mirror organization on GitHub, which carries
    the same commits and produces stable tarballs.
    
    Because the chromium-full-mirror is an unofficial mirror, a new
    verify-mirror target is added, which downloads every sub-dependency
    from chromium.googlesource.com and compares the extracted tree with
    the mirror distfile.
    
    This new target is run as part of "make makesum" so distinfo can only
    be generated when comparison passing.
    
    Drop the hand written post-extract step as the framework now handles
    the sub-dependencies.
    
    verify-mirror passed for all 27 sub-dependencies.  The patched source
    tree is identical to the previous one except for the line endings of
    two unused files in jsoncpp's devtools, so no PORTREVISION bump.
---
 lang/v8/Makefile | 188 ++++++++++++++++++++++++++++++-------------------------
 lang/v8/distinfo | 110 ++++++++++++++++----------------
 2 files changed, 158 insertions(+), 140 deletions(-)

diff --git a/lang/v8/Makefile b/lang/v8/Makefile
index d98054cff3e2..4174af5f0148 100644
--- a/lang/v8/Makefile
+++ b/lang/v8/Makefile
@@ -6,64 +6,7 @@
 PORTNAME=	v8
 PORTVERSION=	15.4.80.20
 CATEGORIES=	lang
-# Sub-dependencies are fetched from chromium.googlesource.com +archive endpoint
-# (archives extract flat with no top-level wrapper directory)
-MASTER_SITES+=	https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+archive/:absl \
-		https://chromium.googlesource.com/chromium/src/build/+archive/:build \
-		https://chromium.googlesource.com/chromium/src/buildtools/+archive/:buildtools \
-		https://chromium.googlesource.com/chromium/src/tools/clang/+archive/:clang \
-		https://chromium.googlesource.com/chromium/src/third_party/cpu_features/+archive/:cpu_features_chromium \
-		https://chromium.googlesource.com/external/github.com/google/cpu_features/+archive/:cpu_features \
-		https://chromium.googlesource.com/external/github.com/aengelke/disarm/+archive/:disarm \
-		https://chromium.googlesource.com/external/github.com/jk-jeon/dragonbox/+archive/:dragonbox \
-		https://chromium.googlesource.com/external/github.com/aengelke/fadec/+archive/:fadec \
-		https://chromium.googlesource.com/external/github.com/fastfloat/fast_float/+archive/:fast_float \
-		https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16/+archive/:fp16 \
-		https://chromium.googlesource.com/chromium/src/third_party/fuzztest/+archive/:fuzztest \
-		https://chromium.googlesource.com/external/github.com/google/fuzztest/+archive/:fuzztest_src \
-		https://chromium.googlesource.com/external/github.com/google/googletest/+archive/:googletest \
-		https://chromium.googlesource.com/external/github.com/google/highway/+archive/:highway \
-		https://chromium.googlesource.com/chromium/deps/icu/+archive/:icu \
-		https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp/+archive/:jsoncpp \
-		https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx/+archive/:libcxx \
-		https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi/+archive/:libcxxabi \
-		https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind/+archive/:libunwind \
-		https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc/+archive/:llvm_libc \
-		https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator/+archive/:partition_alloc \
-		https://chromium.googlesource.com/chromium/src/third_party/protobuf/+archive/:protobuf \
-		https://chromium.googlesource.com/chromium/src/tools/protoc_wrapper/+archive/:protoc_wrapper \
-		https://chromium.googlesource.com/external/github.com/google/re2/+archive/:re2 \
-		https://chromium.googlesource.com/chromium/src/third_party/simdutf/+archive/:simdutf \
-		https://chromium.googlesource.com/chromium/src/third_party/zlib/+archive/:zlib
-DISTFILES=	${ABSL_REV}.tar.gz:absl \
-		${BUILD_REV}.tar.gz:build \
-		${BUILDTOOLS_REV}.tar.gz:buildtools \
-		${CLANG_REV}.tar.gz:clang \
-		${CPU_FEATURES_CHROMIUM_REV}.tar.gz:cpu_features_chromium \
-		${CPU_FEATURES_REV}.tar.gz:cpu_features \
-		${DISARM_REV}.tar.gz:disarm \
-		${DRAGONBOX_REV}.tar.gz:dragonbox \
-		${FADEC_REV}.tar.gz:fadec \
-		${FAST_FLOAT_REV}.tar.gz:fast_float \
-		${FP16_REV}.tar.gz:fp16 \
-		${FUZZTEST_REV}.tar.gz:fuzztest \
-		${FUZZTEST_SRC_REV}.tar.gz:fuzztest_src \
-		${GOOGLETEST_REV}.tar.gz:googletest \
-		${HIGHWAY_REV}.tar.gz:highway \
-		${ICU_REV}.tar.gz:icu \
-		${JSONCPP_REV}.tar.gz:jsoncpp \
-		${LIBCXX_REV}.tar.gz:libcxx \
-		${LIBCXXABI_REV}.tar.gz:libcxxabi \
-		${LIBUNWIND_REV}.tar.gz:libunwind \
-		${LLVM_LIBC_REV}.tar.gz:llvm_libc \
-		${PARTITION_ALLOC_REV}.tar.gz:partition_alloc \
-		${PROTOBUF_REV}.tar.gz:protobuf \
-		${PROTOC_WRAPPER_REV}.tar.gz:protoc_wrapper \
-		${RE2_REV}.tar.gz:re2 \
-		${SIMDUTF_REV}.tar.gz:simdutf \
-		${ZLIB_REV}.tar.gz:zlib
 DIST_SUBDIR=	v8/${PORTVERSION:R}
-EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
 
 MAINTAINER=	delphij@FreeBSD.org
 COMMENT=	Open source JavaScript engine by Google
@@ -85,6 +28,33 @@ CPE_VENDOR=	google
 USE_GITHUB=	yes
 GH_ACCOUNT=	v8
 GH_PROJECT=	v8
+GH_TUPLE=	chromium-full-mirror:external_github.com_google_cpu_features:${CPU_FEATURES_REV}:cpu_features/third_party/cpu_features/src \
+		chromium-full-mirror:external_github.com_aengelke_disarm:${DISARM_REV}:disarm/third_party/disarm/src \
+		chromium-full-mirror:external_github.com_jk-jeon_dragonbox:${DRAGONBOX_REV}:dragonbox/third_party/dragonbox/src \
+		chromium-full-mirror:external_github.com_aengelke_fadec:${FADEC_REV}:fadec/third_party/fadec/src \
+		chromium-full-mirror:external_github.com_fastfloat_fast_float:${FAST_FLOAT_REV}:fast_float/third_party/fast_float/src \
+		chromium-full-mirror:external_github.com_Maratyszcza_FP16:${FP16_REV}:fp16/third_party/fp16/src \
+		chromium-full-mirror:external_github.com_google_fuzztest:${FUZZTEST_SRC_REV}:fuzztest_src/third_party/fuzztest/src \
+		chromium-full-mirror:external_github.com_google_googletest:${GOOGLETEST_REV}:googletest/third_party/googletest/src \
+		chromium-full-mirror:external_github.com_google_highway:${HIGHWAY_REV}:highway/third_party/highway/src \
+		chromium-full-mirror:external_github.com_open-source-parsers_jsoncpp:${JSONCPP_REV}:jsoncpp/third_party/jsoncpp/source \
+		chromium-full-mirror:external_github.com_google_re2:${RE2_REV}:re2/third_party/re2/src \
+		chromium-full-mirror:chromium_src_third_party_abseil-cpp:${ABSL_REV}:absl/third_party/abseil-cpp \
+		chromium-full-mirror:chromium_src_build:${BUILD_REV}:build/build \
+		chromium-full-mirror:chromium_src_buildtools:${BUILDTOOLS_REV}:buildtools/buildtools \
+		chromium-full-mirror:chromium_src_tools_clang:${CLANG_REV}:clang/tools/clang \
+		chromium-full-mirror:chromium_src_third_party_cpu_features:${CPU_FEATURES_CHROMIUM_REV}:cpu_features_chromium/third_party/cpu_features \
+		chromium-full-mirror:chromium_src_third_party_fuzztest:${FUZZTEST_REV}:fuzztest/third_party/fuzztest \
+		chromium-full-mirror:chromium_deps_icu:${ICU_REV}:icu/third_party/icu \
+		chromium-full-mirror:external_github.com_llvm_llvm-project_libcxx:${LIBCXX_REV}:libcxx/third_party/libc++/src \
+		chromium-full-mirror:external_github.com_llvm_llvm-project_libcxxabi:${LIBCXXABI_REV}:libcxxabi/third_party/libc++abi/src \
+		chromium-full-mirror:external_github.com_llvm_llvm-project_libunwind:${LIBUNWIND_REV}:libunwind/third_party/libunwind/src \
+		chromium-full-mirror:external_github.com_llvm_llvm-project_libc:${LLVM_LIBC_REV}:llvm_libc/third_party/llvm-libc/src \
+		chromium-full-mirror:chromium_src_base_allocator_partition_allocator:${PARTITION_ALLOC_REV}:partition_alloc/third_party/partition_alloc \
+		chromium-full-mirror:chromium_src_third_party_protobuf:${PROTOBUF_REV}:protobuf/third_party/protobuf \
+		chromium-full-mirror:chromium_src_tools_protoc_wrapper:${PROTOC_WRAPPER_REV}:protoc_wrapper/tools/protoc_wrapper \
+		chromium-full-mirror:chromium_src_third_party_simdutf:${SIMDUTF_REV}:simdutf/third_party/simdutf \
+		chromium-full-mirror:chromium_src_third_party_zlib:${ZLIB_REV}:zlib/third_party/zlib
 USE_GNOME=	glib20
 USE_LDCONFIG=	yes
 
@@ -156,35 +126,83 @@ GN_ARGS+=	clang_base_path="${LLVM_PREFIX}" \
 
 #OPTIONS_DEFINE=	EXAMPLES
 
-# rev:dest-subdir-under-WRKSRC pairs for sub-dependency extraction
-_V8_OUTDIR=	${WRKSRC}/out/Release
-
-post-extract:
-.for dep in ${ABSL_REV}:third_party/abseil-cpp ${BUILD_REV}:build \
-	${BUILDTOOLS_REV}:buildtools ${CLANG_REV}:tools/clang \
-	${CPU_FEATURES_CHROMIUM_REV}:third_party/cpu_features \
-	${CPU_FEATURES_REV}:third_party/cpu_features/src \
-	${DISARM_REV}:third_party/disarm/src \
-	${DRAGONBOX_REV}:third_party/dragonbox/src \
-	${FADEC_REV}:third_party/fadec/src \
-	${FAST_FLOAT_REV}:third_party/fast_float/src \
-	${FP16_REV}:third_party/fp16/src ${FUZZTEST_REV}:third_party/fuzztest \
-	${FUZZTEST_SRC_REV}:third_party/fuzztest/src \
-	${GOOGLETEST_REV}:third_party/googletest/src \
-	${HIGHWAY_REV}:third_party/highway/src ${ICU_REV}:third_party/icu \
-	${JSONCPP_REV}:third_party/jsoncpp/source \
-	${LIBCXX_REV}:third_party/libc++/src \
-	${LIBCXXABI_REV}:third_party/libc++abi/src \
-	${LIBUNWIND_REV}:third_party/libunwind/src \
-	${LLVM_LIBC_REV}:third_party/llvm-libc/src \
-	${PARTITION_ALLOC_REV}:third_party/partition_alloc \
-	${PROTOBUF_REV}:third_party/protobuf \
-	${PROTOC_WRAPPER_REV}:tools/protoc_wrapper \
-	${RE2_REV}:third_party/re2/src ${SIMDUTF_REV}:third_party/simdutf \
-	${ZLIB_REV}:third_party/zlib
-	@${MKDIR} ${WRKSRC}/${dep:C/.*://}
-	@${TAR} -xf ${DISTDIR}/${DIST_SUBDIR}/${dep:C/:.*//}.tar.gz -C ${WRKSRC}/${dep:C/.*://}
+# GH_TUPLE group:path-on-chromium.googlesource.com pairs.  The distfiles come
+# from the unofficial chromium-full-mirror on GitHub and are compared against
+# chromium.googlesource.com by verify-mirror.  FETCH_ENV is deliberately not
+# used there, as it disables TLS certificate verification.
+_GS_DEPS=		absl:chromium/src/third_party/abseil-cpp \
+			build:chromium/src/build \
+			buildtools:chromium/src/buildtools \
+			clang:chromium/src/tools/clang \
+			cpu_features_chromium:chromium/src/third_party/cpu_features \
+			fuzztest:chromium/src/third_party/fuzztest \
+			icu:chromium/deps/icu \
+			libcxx:external/github.com/llvm/llvm-project/libcxx \
+			libcxxabi:external/github.com/llvm/llvm-project/libcxxabi \
+			libunwind:external/github.com/llvm/llvm-project/libunwind \
+			llvm_libc:external/github.com/llvm/llvm-project/libc \
+			partition_alloc:chromium/src/base/allocator/partition_allocator \
+			protobuf:chromium/src/third_party/protobuf \
+			protoc_wrapper:chromium/src/tools/protoc_wrapper \
+			simdutf:chromium/src/third_party/simdutf \
+			zlib:chromium/src/third_party/zlib \
+			cpu_features:external/github.com/google/cpu_features \
+			disarm:external/github.com/aengelke/disarm \
+			dragonbox:external/github.com/jk-jeon/dragonbox \
+			fadec:external/github.com/aengelke/fadec \
+			fast_float:external/github.com/fastfloat/fast_float \
+			fp16:external/github.com/Maratyszcza/FP16 \
+			fuzztest_src:external/github.com/google/fuzztest \
+			googletest:external/github.com/google/googletest \
+			highway:external/github.com/google/highway \
+			jsoncpp:external/github.com/open-source-parsers/jsoncpp \
+			re2:external/github.com/google/re2
+# jsoncpp marks devtools/agent_vm* as eol=crlf in .gitattributes, which GitHub
+# applies when generating the tarball and gitiles does not.
+_GS_DIFF_ARGS_jsoncpp=	--strip-trailing-cr
+_GS_SITE=		https://chromium.googlesource.com
+_GS_VERIFY=		${WRKDIR}/.verify-mirror
+_V8_OUTDIR=		${WRKSRC}/out/Release
+
+# "make makesum" fetches with these two set; hook the verification in there so
+# that distinfo can not be regenerated without it.
+.if defined(NO_CHECKSUM) && defined(DISABLE_SIZE)
+post-fetch: verify-mirror
+.endif
+
+verify-mirror:
+	@${ECHO_MSG} "===>  Verifying chromium-full-mirror distfiles against ${_GS_SITE}"
+.for group in \
+	${GH_TUPLE:Mchromium-full-mirror\:*:C/^[^:]*:[^:]*:[^:]*:([^\/]*)\/.*/\1/}
+.  if empty(_GS_DEPS:M${group}\:*)
+	@${ECHO_MSG} "===>  ${group} is fetched from chromium-full-mirror but missing from _GS_DEPS"
+	@${FALSE}
+.  endif
 .endfor
+.for dep in ${_GS_DEPS}
+	@${RM} -r ${_GS_VERIFY}
+	@${MKDIR} ${_GS_VERIFY}/googlesource ${_GS_VERIFY}/mirror
+	@${FETCH_CMD} -q \
+		-o ${_GS_VERIFY}/googlesource.tar.gz \
+		${_GS_SITE}/${dep:C/^[^:]*://}/+archive/${GH_TAGNAME_${dep:C/:.*//}}.tar.gz
+	@${TAR} -xf ${_GS_VERIFY}/googlesource.tar.gz \
+		-C ${_GS_VERIFY}/googlesource
+	@${TAR} -xf ${_DISTDIR}/${DISTFILE_${dep:C/:.*//}} --strip-components 1 \
+		-C ${_GS_VERIFY}/mirror
+	@cd ${_GS_VERIFY}/googlesource && ${FIND} . ! -type l -exec ${STAT} -f '%HT %Lp %N' {} + | \
+		LC_ALL=C ${SORT} > ${_GS_VERIFY}/googlesource.list
+	@cd ${_GS_VERIFY}/mirror && ${FIND} . ! -type l -exec ${STAT} -f '%HT %Lp %N' {} + | \
+		LC_ALL=C ${SORT} > ${_GS_VERIFY}/mirror.list
+	@if ! ${DIFF} -u ${_GS_VERIFY}/googlesource.list ${_GS_VERIFY}/mirror.list || \
+		! ${DIFF} -r --no-dereference ${_GS_DIFF_ARGS_${dep:C/:.*//}} ${_GS_VERIFY}/googlesource ${_GS_VERIFY}/mirror; then \
+		${ECHO_MSG} "===>  MISMATCH: ${DISTFILE_${dep:C/:.*//}} differs from ${_GS_SITE}/${dep:C/^[^:]*://}"; \
+		${ECHO_MSG} "===>  Do NOT update distinfo or commit."; \
+		${FALSE}; \
+	fi
+	@${ECHO_MSG} "=> ${dep:C/:.*//} ${GH_TAGNAME_${dep:C/:.*//}} identical"
+.endfor
+	@${RM} -r ${_GS_VERIFY}
+	@${ECHO_MSG} "===>  verify-mirror: all ${_GS_DEPS:[#]} mirrored distfiles match ${_GS_SITE}"
 
 post-patch:
 	@${REINPLACE_CMD} -i '' 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/build/toolchain/gcc_toolchain.gni
diff --git a/lang/v8/distinfo b/lang/v8/distinfo
index fcd6d78f8859..c04224e71357 100644
--- a/lang/v8/distinfo
+++ b/lang/v8/distinfo
@@ -1,57 +1,57 @@
-TIMESTAMP = 1790916863
-SHA256 (v8/15.4.80/435e7d977fb36fb47854a4c552c0706dad0bd7cf.tar.gz) = b11e0a7e68d0eba85cdea3858dbb020dcfbebe033ee8fe54efa42190dc822e93
-SIZE (v8/15.4.80/435e7d977fb36fb47854a4c552c0706dad0bd7cf.tar.gz) = 3235872
-SHA256 (v8/15.4.80/fdd530b37c6cd6c8645cdfa296d209643ab2dc26.tar.gz) = f18d6c78ce4db6db6eb2e8ffc135c4a14b98dc9243cde9b1d3816bde55adea85
-SIZE (v8/15.4.80/fdd530b37c6cd6c8645cdfa296d209643ab2dc26.tar.gz) = 1968245
-SHA256 (v8/15.4.80/6f6a5dbf04b734214f3b1f386567d101ec9d607e.tar.gz) = 7280dc79e369588f0b230f90a86bef28393e29851286df19a4b3c6ad1acc81f3
-SIZE (v8/15.4.80/6f6a5dbf04b734214f3b1f386567d101ec9d607e.tar.gz) = 60918
-SHA256 (v8/15.4.80/450d823868eaee61e2b2cb986e19aec287f16d58.tar.gz) = 712ac8f4c09efeb954f849489451e9589c092f14e66a5fc38f544b172ef0292f
-SIZE (v8/15.4.80/450d823868eaee61e2b2cb986e19aec287f16d58.tar.gz) = 692558
-SHA256 (v8/15.4.80/4974e2063946d9dd2a417c27db139fd982ff447a.tar.gz) = 4ed3585f5047884390231fc9bfba2fb7736f9328a914f5a3698e1261738410ec
-SIZE (v8/15.4.80/4974e2063946d9dd2a417c27db139fd982ff447a.tar.gz) = 1317
-SHA256 (v8/15.4.80/81d13c49649f0714dd41fb56bb246398b6584085.tar.gz) = c8ae6558b53501cdae8eb42daa15500b4e10e2394da6fe9715f7347b91233edb
-SIZE (v8/15.4.80/81d13c49649f0714dd41fb56bb246398b6584085.tar.gz) = 122114
-SHA256 (v8/15.4.80/2d13d3f410a52daff1c5d8ef07d623332f372560.tar.gz) = a764e0294bbf6643e2ee36e42f98b79d7e57c33234690e01177a37c2d5e0f27f
-SIZE (v8/15.4.80/2d13d3f410a52daff1c5d8ef07d623332f372560.tar.gz) = 351177
-SHA256 (v8/15.4.80/beeeef91cf6fef89a4d4ba5e95d47ca64ccb3a44.tar.gz) = e5f2fc5d5a3ff649ff799751a0ce0235a74d2c38afa8dc14019f307b4cb99881
-SIZE (v8/15.4.80/beeeef91cf6fef89a4d4ba5e95d47ca64ccb3a44.tar.gz) = 4235113
-SHA256 (v8/15.4.80/c9f78f532b9004de278489019ab2c6c28ae9746e.tar.gz) = f526af6feb9e3defd3c55c95d252c2b617eecbd0b5624e6fe8253efa067e1e40
-SIZE (v8/15.4.80/c9f78f532b9004de278489019ab2c6c28ae9746e.tar.gz) = 121737
-SHA256 (v8/15.4.80/34164f547b7df3f5d794ff67e9f885c36819ebfc.tar.gz) = 1e1a5abb4a25a21d9d483b1df128ab484b5b5859064e04d6ac5945649799b6ea
-SIZE (v8/15.4.80/34164f547b7df3f5d794ff67e9f885c36819ebfc.tar.gz) = 143840
-SHA256 (v8/15.4.80/782eea126dc5c755827be751a099eb01826175cf.tar.gz) = c0bc2eb57f6b543aa25fce5eb11fb8414d7e9dc7d3c1c1680ae0056599de99f9
-SIZE (v8/15.4.80/782eea126dc5c755827be751a099eb01826175cf.tar.gz) = 65403
-SHA256 (v8/15.4.80/0dcd0b87a3252a116ec59fadcfc80f2d2015bbac.tar.gz) = 0fa6015080c799f7b1a0ab34155b3434e683262d41df05c32cfc97ac3a2054ce
-SIZE (v8/15.4.80/0dcd0b87a3252a116ec59fadcfc80f2d2015bbac.tar.gz) = 4827
-SHA256 (v8/15.4.80/94c3cf3a4391eb0bb12999128e29cbe625bad2f3.tar.gz) = 5328d329240f108ce185a3ea1ec5c88b649a4f29b8e8e5fc6926fbdb9415a861
-SIZE (v8/15.4.80/94c3cf3a4391eb0bb12999128e29cbe625bad2f3.tar.gz) = 1013938
-SHA256 (v8/15.4.80/4fe3307fb2d9f86d19777c7eb0e4809e9694dde7.tar.gz) = 9ad707f033bf7c028a92ddc20985c4ecd6a9318bbe189ddab51b7b0d09cb4334
-SIZE (v8/15.4.80/4fe3307fb2d9f86d19777c7eb0e4809e9694dde7.tar.gz) = 901289
-SHA256 (v8/15.4.80/2607d3b5b0113992fe84d3848859eae13b3b52c1.tar.gz) = 7ff1e8c4bea5c5bd5ac03cd6fc16411b59e5340c4bd006b24be62e97c4f17e36
-SIZE (v8/15.4.80/2607d3b5b0113992fe84d3848859eae13b3b52c1.tar.gz) = 3704445
-SHA256 (v8/15.4.80/8cc91d9b6ab9991802fd208ee03a69714fd0251c.tar.gz) = 17978d101d6e3a33fd03551f1254c4163a86485ba6405c59db8bfcd62435ae02
-SIZE (v8/15.4.80/8cc91d9b6ab9991802fd208ee03a69714fd0251c.tar.gz) = 55719495
-SHA256 (v8/15.4.80/3347a4b86bb914cb565f0cbda19c06e109513300.tar.gz) = e33d3b570f964a539e9d851a86e52fb42c2f2a8d20e5f1d22f89455bcb5ad083
-SIZE (v8/15.4.80/3347a4b86bb914cb565f0cbda19c06e109513300.tar.gz) = 195484
-SHA256 (v8/15.4.80/97b436da4c33663581d394f4ee0a5977fc38c2f4.tar.gz) = 6e1c2f908232d88cb22f58fa46332bca4a88031d36e8c6d6bc3dc6026c349a2d
-SIZE (v8/15.4.80/97b436da4c33663581d394f4ee0a5977fc38c2f4.tar.gz) = 9030865
-SHA256 (v8/15.4.80/fc1897a2c12aa27e703c3ed48b62eba8abf4ce19.tar.gz) = 317247f0fb5390f0a64acb6a153c7e9906193c10e502cf9885bc363a83971626
-SIZE (v8/15.4.80/fc1897a2c12aa27e703c3ed48b62eba8abf4ce19.tar.gz) = 808160
-SHA256 (v8/15.4.80/45120ee2331193c3650acc9c427ed267fab31d62.tar.gz) = 7d3e1b876ca7fc5afd56646433f333c68af223bfca55e87acfaf15b6868f5435
-SIZE (v8/15.4.80/45120ee2331193c3650acc9c427ed267fab31d62.tar.gz) = 188566
-SHA256 (v8/15.4.80/320824188c37e5c28738b9652a0ca8087c934bc9.tar.gz) = c9ad9b0ea6161fb6772c062f10446cc2f6b86498a68e1b3004f999d7e10032a7
-SIZE (v8/15.4.80/320824188c37e5c28738b9652a0ca8087c934bc9.tar.gz) = 8047296
-SHA256 (v8/15.4.80/f0d1e646eb41d8736261d5d8d8f094404bac62ac.tar.gz) = 98ce7e14e2e3b0ac50c3e1e75b16901501d387c7e40c026e158e2bad2ff5eeb9
-SIZE (v8/15.4.80/f0d1e646eb41d8736261d5d8d8f094404bac62ac.tar.gz) = 894121
-SHA256 (v8/15.4.80/5f8c379d1fc89fe8eee16ae560dd5e514a4608da.tar.gz) = d2fffb4dbfa74950868d8a17819117d31358b0f23622da34df14a2dcdd2b8eb1
-SIZE (v8/15.4.80/5f8c379d1fc89fe8eee16ae560dd5e514a4608da.tar.gz) = 7224268
-SHA256 (v8/15.4.80/e9dbe1bf6a2a5d2d4973725874259eed587cf18d.tar.gz) = 3004a11737658df6ffcd80be224871f54db6b1f6d3b34511129e5a402c408100
-SIZE (v8/15.4.80/e9dbe1bf6a2a5d2d4973725874259eed587cf18d.tar.gz) = 4467
-SHA256 (v8/15.4.80/972a15cedd008d846f1a39b2e88ce48d7f166cbd.tar.gz) = 71acda32f3d218e9345493504ba9671bbda235f87e92def13005c61746841d32
-SIZE (v8/15.4.80/972a15cedd008d846f1a39b2e88ce48d7f166cbd.tar.gz) = 401713
-SHA256 (v8/15.4.80/f7356eed293f8208c40b3c1b344a50bd70971983.tar.gz) = 6ef6aa96b30c0afc4975769e7e1c81a5a31bf522f13a0d45f289b37c33db4d1a
-SIZE (v8/15.4.80/f7356eed293f8208c40b3c1b344a50bd70971983.tar.gz) = 425715
-SHA256 (v8/15.4.80/5eb4d7ed380f214e7a0a23c18f629048d3ba9e00.tar.gz) = 7968f6e4a7bb381630149966bcc811e139a65d25754a600d55c19d2fec71c759
-SIZE (v8/15.4.80/5eb4d7ed380f214e7a0a23c18f629048d3ba9e00.tar.gz) = 1393195
+TIMESTAMP = 1791091021
 SHA256 (v8/15.4.80/v8-v8-15.4.80.20_GH0.tar.gz) = 13f0ed4f6c5b73578f3df60ae6230212f44a5cdd5ac9a05e3eee877a627a530b
 SIZE (v8/15.4.80/v8-v8-15.4.80.20_GH0.tar.gz) = 30989077
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_google_cpu_features-81d13c49649f0714dd41fb56bb246398b6584085_GH0.tar.gz) = 11d95dc8866e3ea5667509cc30d0169b838ad7d96c740ac06bfdde600f609209
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_google_cpu_features-81d13c49649f0714dd41fb56bb246398b6584085_GH0.tar.gz) = 116738
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_aengelke_disarm-2d13d3f410a52daff1c5d8ef07d623332f372560_GH0.tar.gz) = db8f10f8f4a77596d755badc5719bbb83a9a7d9d05d3535ff607a2a400a0f6b5
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_aengelke_disarm-2d13d3f410a52daff1c5d8ef07d623332f372560_GH0.tar.gz) = 356470
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_jk-jeon_dragonbox-beeeef91cf6fef89a4d4ba5e95d47ca64ccb3a44_GH0.tar.gz) = 85e20b29c451eaaffc3ec8bb91c0ac0569f5abd7077ed0520dbd7c09ce3a2783
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_jk-jeon_dragonbox-beeeef91cf6fef89a4d4ba5e95d47ca64ccb3a44_GH0.tar.gz) = 4227723
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_aengelke_fadec-c9f78f532b9004de278489019ab2c6c28ae9746e_GH0.tar.gz) = 3424d18c3933d6bb18ae89ffb237fc6053119dfa11ae44a2a221b449375f046c
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_aengelke_fadec-c9f78f532b9004de278489019ab2c6c28ae9746e_GH0.tar.gz) = 121174
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_fastfloat_fast_float-34164f547b7df3f5d794ff67e9f885c36819ebfc_GH0.tar.gz) = d5b204c47a97dd399c93fe402058ab3e2afce60ba3e90cf5a354625f3f6462cb
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_fastfloat_fast_float-34164f547b7df3f5d794ff67e9f885c36819ebfc_GH0.tar.gz) = 140032
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_Maratyszcza_FP16-782eea126dc5c755827be751a099eb01826175cf_GH0.tar.gz) = 736e00f597e783f7d763bc0b80e9503ed35b4d6bf08c890d7516464fc1259ade
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_Maratyszcza_FP16-782eea126dc5c755827be751a099eb01826175cf_GH0.tar.gz) = 64762
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_google_fuzztest-94c3cf3a4391eb0bb12999128e29cbe625bad2f3_GH0.tar.gz) = e4f9f1af729f0d41e7636e2e74b1fa7144fba9c9ea111d658dffb68063e0305b
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_google_fuzztest-94c3cf3a4391eb0bb12999128e29cbe625bad2f3_GH0.tar.gz) = 984492
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_google_googletest-4fe3307fb2d9f86d19777c7eb0e4809e9694dde7_GH0.tar.gz) = edec3397b5fddc4d4b82b800f5818d7b9af42234c0a18418c7a3324b117b674c
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_google_googletest-4fe3307fb2d9f86d19777c7eb0e4809e9694dde7_GH0.tar.gz) = 889388
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_google_highway-2607d3b5b0113992fe84d3848859eae13b3b52c1_GH0.tar.gz) = cff71f93ba12be899fac8579f8095c28197e97167b88d6fa511122f2b53107b3
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_google_highway-2607d3b5b0113992fe84d3848859eae13b3b52c1_GH0.tar.gz) = 3692458
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_open-source-parsers_jsoncpp-3347a4b86bb914cb565f0cbda19c06e109513300_GH0.tar.gz) = a8989f83704f5ebc938b8666e2092dc8305642a45c1b6649e1daa1c1db801cdf
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_open-source-parsers_jsoncpp-3347a4b86bb914cb565f0cbda19c06e109513300_GH0.tar.gz) = 188156
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_google_re2-972a15cedd008d846f1a39b2e88ce48d7f166cbd_GH0.tar.gz) = 186469e8880a129eb2d0f142f8a89a66d6e7d0fe908c59e36ed473c9ee33aeb0
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_google_re2-972a15cedd008d846f1a39b2e88ce48d7f166cbd_GH0.tar.gz) = 398192
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_abseil-cpp-435e7d977fb36fb47854a4c552c0706dad0bd7cf_GH0.tar.gz) = 7f9fc7063af6532aa231bddf180012a53b49a71a91f779a0c08f8ea6128b6816
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_abseil-cpp-435e7d977fb36fb47854a4c552c0706dad0bd7cf_GH0.tar.gz) = 3162440
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_build-fdd530b37c6cd6c8645cdfa296d209643ab2dc26_GH0.tar.gz) = 576bf9f46b5fb758f266a13e31737e21f72885ef1a45a48ad0060f59a5f06ea5
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_build-fdd530b37c6cd6c8645cdfa296d209643ab2dc26_GH0.tar.gz) = 1898380
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_buildtools-6f6a5dbf04b734214f3b1f386567d101ec9d607e_GH0.tar.gz) = c153f2939d2e80b6ed4c8edd8fe4184b33067e1d4f3879048cf49a1c844c46b2
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_buildtools-6f6a5dbf04b734214f3b1f386567d101ec9d607e_GH0.tar.gz) = 57066
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_tools_clang-450d823868eaee61e2b2cb986e19aec287f16d58_GH0.tar.gz) = 804ae28d0655926ae406db9a698f8eedf3897ffaa10ea9075458d6dd9af996aa
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_tools_clang-450d823868eaee61e2b2cb986e19aec287f16d58_GH0.tar.gz) = 653520
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_cpu_features-4974e2063946d9dd2a417c27db139fd982ff447a_GH0.tar.gz) = 8bb2d742de571eccd1d0e1046bfd3710306ad25ab9451a1f1f83d730241f4ec4
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_cpu_features-4974e2063946d9dd2a417c27db139fd982ff447a_GH0.tar.gz) = 1350
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_fuzztest-0dcd0b87a3252a116ec59fadcfc80f2d2015bbac_GH0.tar.gz) = dfabdb0195f3f10ec3ca17407d3392e7986f26a4f28962edc169e5f2157c770c
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_fuzztest-0dcd0b87a3252a116ec59fadcfc80f2d2015bbac_GH0.tar.gz) = 4887
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_deps_icu-8cc91d9b6ab9991802fd208ee03a69714fd0251c_GH0.tar.gz) = cb4751dbe22551d3275f6c3e3b3df454093e33c6b7332d1e562989888f8947cd
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_deps_icu-8cc91d9b6ab9991802fd208ee03a69714fd0251c_GH0.tar.gz) = 55573844
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_llvm_llvm-project_libcxx-97b436da4c33663581d394f4ee0a5977fc38c2f4_GH0.tar.gz) = bf96db13560d0f8436ce3fe9ad8d7ccbe36fd8a509cf0982635eed822a718c94
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_llvm_llvm-project_libcxx-97b436da4c33663581d394f4ee0a5977fc38c2f4_GH0.tar.gz) = 8565984
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_llvm_llvm-project_libcxxabi-fc1897a2c12aa27e703c3ed48b62eba8abf4ce19_GH0.tar.gz) = 3dc1eb333b40416ec9d79c84c566d6f2af0ab4645a4279ef41e2172c389978da
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_llvm_llvm-project_libcxxabi-fc1897a2c12aa27e703c3ed48b62eba8abf4ce19_GH0.tar.gz) = 802447
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_llvm_llvm-project_libunwind-45120ee2331193c3650acc9c427ed267fab31d62_GH0.tar.gz) = 4936afc0eafd8105c9491ddb7177139c38e0f1a1e7e34487467b5dc430090220
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_llvm_llvm-project_libunwind-45120ee2331193c3650acc9c427ed267fab31d62_GH0.tar.gz) = 184988
+SHA256 (v8/15.4.80/chromium-full-mirror-external_github.com_llvm_llvm-project_libc-320824188c37e5c28738b9652a0ca8087c934bc9_GH0.tar.gz) = 27dd4211d148a62038308b55793b6f649564b46fc0890e244102c54beb5aacb3
+SIZE (v8/15.4.80/chromium-full-mirror-external_github.com_llvm_llvm-project_libc-320824188c37e5c28738b9652a0ca8087c934bc9_GH0.tar.gz) = 7804634
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_base_allocator_partition_allocator-f0d1e646eb41d8736261d5d8d8f094404bac62ac_GH0.tar.gz) = e25a2fd18acb98a2d065bbe1a3dfa445487c00da6ed57a1f12326be3556ee721
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_base_allocator_partition_allocator-f0d1e646eb41d8736261d5d8d8f094404bac62ac_GH0.tar.gz) = 873235
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_protobuf-5f8c379d1fc89fe8eee16ae560dd5e514a4608da_GH0.tar.gz) = 22f7f208c4aa0a0eba38b92b5ad5a0b96570f17fa6998741a47cc86dfe0ea911
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_protobuf-5f8c379d1fc89fe8eee16ae560dd5e514a4608da_GH0.tar.gz) = 7071701
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_tools_protoc_wrapper-e9dbe1bf6a2a5d2d4973725874259eed587cf18d_GH0.tar.gz) = f1cd02acacdabea17c4e0e5c312982cd94ab4bfabbe8f20d77baa473313125cb
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_tools_protoc_wrapper-e9dbe1bf6a2a5d2d4973725874259eed587cf18d_GH0.tar.gz) = 4446
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_simdutf-f7356eed293f8208c40b3c1b344a50bd70971983_GH0.tar.gz) = ba5584a4392a5189f8cc3849b946c5733b0b3a3cce006b57b611fb3d5e9987a4
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_simdutf-f7356eed293f8208c40b3c1b344a50bd70971983_GH0.tar.gz) = 425405
+SHA256 (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_zlib-5eb4d7ed380f214e7a0a23c18f629048d3ba9e00_GH0.tar.gz) = b60224b99e9fdaea23b5af8f83b2d91c00e2872eb4bd2ebfe9314a73004a6783
+SIZE (v8/15.4.80/chromium-full-mirror-chromium_src_third_party_zlib-5eb4d7ed380f214e7a0a23c18f629048d3ba9e00_GH0.tar.gz) = 1385579