Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 May 2026 03:13:53 +0000
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: b81bc7a0b651 - main - lang/bun: update 1.3.13-9=?utf-8?Q?3 =E2=86=92 1.?=3.14
Message-ID:  <6a053df1.388be.58d2ab8c@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by yuri:

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

commit b81bc7a0b651f1d9f6b2042a55a6d985261f332f
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-05-14 01:57:41 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-05-14 03:13:49 +0000

    lang/bun: update 1.3.13-93 → 1.3.14
---
 lang/bun/Makefile                                  | 20 +++++++----
 lang/bun/distinfo                                  | 12 +++++--
 lang/bun/files/patch-build.zig                     |  4 +--
 .../files/patch-scripts_build_depVersionsHeader.ts | 13 +++++++
 lang/bun/files/patch-scripts_build_deps_lolhtml.ts | 22 ++++++++++++
 ...src_jsc_bindings_BunAnalyzeTranspiledModule.cpp | 13 +++++++
 .../patch-src_jsc_bindings_BunCPUProfiler.cpp      | 40 ++++++++++++++++++++++
 .../bun/files/patch-src_jsc_bindings_BunObject.cpp | 13 +++++++
 ...tch-src_jsc_bindings_NodeVMSourceTextModule.cpp | 22 ++++++++++++
 lang/bun/files/patch-src_jsc_bindings_bindings.cpp | 13 +++++++
 10 files changed, 161 insertions(+), 11 deletions(-)

diff --git a/lang/bun/Makefile b/lang/bun/Makefile
index 5d90e89980f5..7d149bd21b3c 100644
--- a/lang/bun/Makefile
+++ b/lang/bun/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	bun
 DISTVERSIONPREFIX=	bun-v
-DISTVERSION=	1.3.13-93
-DISTVERSIONSUFFIX=	-g146a674cf6
+DISTVERSION=	1.3.14
 CATEGORIES=	lang
 MASTER_SITES=	GH \
 		https://github.com/oven-sh/zig/releases/download/autobuild-04e7f6ac1e009525bc00934f20199c68f04e0a24/:ovenzig \
@@ -11,7 +10,10 @@ MASTER_SITES=	GH \
 DISTFILES=	bootstrap-x86_64-linux-musl.zip:ovenzig \
 		bun-webkit-freebsd-amd64.tar.gz:webkit \
 		node-v${NODE_VERSION}-headers.tar.gz:nodejshdr \
-		bun-1.3.13-93-bootstrap:bootstrap
+		bun-1.3.13-93-bootstrap:bootstrap \
+		bun-node-modules-${DISTVERSION}.tar.gz:bootstrap \
+		bun-dep-tarballs-${DISTVERSION}.tar.gz:bootstrap \
+		bun-cargo-vendor-lolhtml-${DISTVERSION}.tar.gz:bootstrap
 DIST_SUBDIR=	${PORTNAME}
 # Only auto-extract the GitHub source tarball; everything else is handled in post-extract.
 EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
@@ -67,13 +69,19 @@ _BUN_DEP_TARBALLS=	\
 	brotli-723494d4c3a9902a.tar.gz:https://github.com/google/brotli/archive/v1.1.0.tar.gz \
 	cares-4e43539b43c0f4ae.tar.gz:https://github.com/c-ares/c-ares/archive/3ac47ee46edd8ea40370222f91613fc16c434853.tar.gz \
 	hdrhistogram-97084f213075a65e.tar.gz:https://github.com/HdrHistogram/HdrHistogram_c/archive/be60a9987ee48d0abf0d7b6a175bad8d6c1585d1.tar.gz \
-	highway-a10c8937e1b920ad.tar.gz:https://github.com/google/highway/archive/ac0d5d297b13ab1b89f48484fc7911082d76a93f.tar.gz \
+	highway-b2dcc6002e95cc47.tar.gz:https://github.com/google/highway/archive/2607d3b5b0113992fe84d3848859eae13b3b52c1.tar.gz \
 	libarchive-4296b191210d6b1b.tar.gz:https://github.com/libarchive/libarchive/archive/ded82291ab41d5e355831b96b0e1ff49e24d8939.tar.gz \
 	libdeflate-ce0e2d9805b30dcc.tar.gz:https://github.com/ebiggers/libdeflate/archive/c8c56a20f8f621e6a966b716b31f1dedab6a41e3.tar.gz \
+	libjpeg-turbo-297099166a01f75e.tar.gz:https://github.com/libjpeg-turbo/libjpeg-turbo/archive/e352b02f794f701407b39af08576035ba3360d60.tar.gz \
+	libspng-e6aca86c593b51ad.tar.gz:https://github.com/randy408/libspng/archive/fb768002d4288590083a476af628e51c3f1d47cd.tar.gz \
+	libwebp-2ced709f169b40bd.tar.gz:https://github.com/webmproject/libwebp/archive/b7e29b9d75bd31422b00c2a446d49d7af06c328d.tar.gz \
 	lolhtml-929339b1d898e66b.tar.gz:https://github.com/cloudflare/lol-html/archive/77127cd2b8545998756e8d64e36ee2313c4bb312.tar.gz \
 	lshpack-73e0c55d12ea4fc2.tar.gz:https://github.com/litespeedtech/ls-hpack/archive/8905c024b6d052f083a3d11d0a169b3c2735c8a1.tar.gz \
-	mimalloc-9e61bdd994e99463.tar.gz:https://github.com/oven-sh/mimalloc/archive/dbbb9a0819d00d521f9f58ad4d0a336efa4ce53a.tar.gz \
+	lsqpack-ceeb8e315778b938.tar.gz:https://github.com/litespeedtech/ls-qpack/archive/1e9c5b8e59f8161c54f168a570c8bfdc59ded0c3.tar.gz \
+	lsquic-d3ef6cf1fbedd7f9.tar.gz:https://github.com/litespeedtech/lsquic/archive/3181911301b1aa4f54c1ed690901abc674ee08fb.tar.gz \
+	mimalloc-4a1c4f1f45e31b88.tar.gz:https://github.com/oven-sh/mimalloc/archive/f15aecb94fc8096008bf87b90c53ed682026914a.tar.gz \
 	picohttpparser-fad59b16ad4752cc.tar.gz:https://github.com/h2o/picohttpparser/archive/066d2b1e9ab820703db0837a7255d92d30f0c9f5.tar.gz \
+	tinycc-2f1f629056328c7b.tar.gz:https://github.com/oven-sh/tinycc/archive/12882eee073cfe5c7621bcfadf679e1372d4537b.tar.gz \
 	zlib-655c6ecdb6fc9cd5.tar.gz:https://github.com/zlib-ng/zlib-ng/archive/12731092979c6d07f42da27da673a9f6c7b13586.tar.gz \
 	zstd-e010993a24072468.tar.gz:https://github.com/facebook/zstd/archive/f8745da6ff1ad1e7bab384bd1f9d742439278e99.tar.gz
 
@@ -96,7 +104,7 @@ do-fetch:
 			${DISTFILES:M*\:ovenzig} \
 			${DISTFILES:M*\:webkit} \
 			${DISTFILES:M*\:nodejshdr} \
-			${DISTFILES:M*\:bootstrap}
+			${DISTFILES:M*\:bootstrap:N*node-modules-*:N*dep-tarballs-*:N*cargo-vendor-*}
 	# Build bun-node-modules tarball (npm install with workspace: → file: fixes).
 	# Uses deterministic tar so the checksum is reproducible across builds.
 	@if ! [ -f "${DD}/bun-node-modules-${DISTVERSION}.tar.gz" ]; then \
diff --git a/lang/bun/distinfo b/lang/bun/distinfo
index 3a7d3a4aafe4..ff295730c80f 100644
--- a/lang/bun/distinfo
+++ b/lang/bun/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1777332350
+TIMESTAMP = 1778719307
 SHA256 (bun/bootstrap-x86_64-linux-musl.zip) = 0c09b44c0b2432d7ad8a759b685ba8ae1f883902851ac52e282ad60a89bebe42
 SIZE (bun/bootstrap-x86_64-linux-musl.zip) = 100112252
 SHA256 (bun/bun-webkit-freebsd-amd64.tar.gz) = 2bbab3f44e3b3d7961408c703271285ca3cc4d128d7ff9fc54dc5ab112e89fbf
@@ -7,5 +7,11 @@ SHA256 (bun/node-v24.3.0-headers.tar.gz) = 045e9bf477cd5db0ec67f8c1a63ba7f784ded
 SIZE (bun/node-v24.3.0-headers.tar.gz) = 8747815
 SHA256 (bun/bun-1.3.13-93-bootstrap) = aea7f1c221f812d726aad220ecc879914bbe49b05e5bd4e76c3155ec0a133f54
 SIZE (bun/bun-1.3.13-93-bootstrap) = 105685712
-SHA256 (bun/oven-sh-bun-bun-v1.3.13-93-g146a674cf6_GH0.tar.gz) = 12bec710dd6717f83ccaaec7fb7970828177f173639018042ca3031b851b24ff
-SIZE (bun/oven-sh-bun-bun-v1.3.13-93-g146a674cf6_GH0.tar.gz) = 54226399
+SHA256 (bun/bun-node-modules-1.3.14.tar.gz) = d185dddcbaa2bee0298694ae7cf712634f8a2c2f36ec5650c66fded5d352b660
+SIZE (bun/bun-node-modules-1.3.14.tar.gz) = 31878291
+SHA256 (bun/bun-dep-tarballs-1.3.14.tar.gz) = 8cf5f1aaae1f3494bde36d358fd5d8046e62a4aea48431f99b1317e33dc603ac
+SIZE (bun/bun-dep-tarballs-1.3.14.tar.gz) = 98808662
+SHA256 (bun/bun-cargo-vendor-lolhtml-1.3.14.tar.gz) = 55bd5cbcd4c430c8f8fe8ef3f2bb097da7bfd017a76472d17fb973bb3b49edbb
+SIZE (bun/bun-cargo-vendor-lolhtml-1.3.14.tar.gz) = 4020543
+SHA256 (bun/oven-sh-bun-bun-v1.3.14_GH0.tar.gz) = 112a5915992807f04b183854d360c2bf87ac7c1587fb5da3c560bdbb75b8c92e
+SIZE (bun/oven-sh-bun-bun-v1.3.14_GH0.tar.gz) = 54898395
diff --git a/lang/bun/files/patch-build.zig b/lang/bun/files/patch-build.zig
index e9da8d2ea74a..d6c6879a493e 100644
--- a/lang/bun/files/patch-build.zig
+++ b/lang/bun/files/patch-build.zig
@@ -4,7 +4,7 @@
 -- 2. SemanticVersion format: use {d}.{d}.{d} instead of {f} for compatibility
 -- 3. validateGeneratedPath: skip panic when generated files are not yet present
 
---- build.zig.orig	2026-04-27 07:25:40 UTC
+--- build.zig.orig	2026-05-12 22:12:49 UTC
 +++ build.zig
 @@ -90,7 +90,7 @@ const BunBuildOptions = struct {
          opts.addOption(bool, "enable_valgrind", this.enable_valgrind);
@@ -24,7 +24,7 @@
      if (os == .freebsd and freebsd_sysroot == null) {
          std.debug.panic("-Dfreebsd_sysroot is required when cross-compiling to FreeBSD (zig does not bundle FreeBSD libc headers)", .{});
      }
-@@ -1086,13 +1086,8 @@ fn validateGeneratedPath(path: []const u8) void {
+@@ -1106,13 +1106,8 @@ fn validateGeneratedPath(path: []const u8) void {
  }
  
  fn validateGeneratedPath(path: []const u8) void {
diff --git a/lang/bun/files/patch-scripts_build_depVersionsHeader.ts b/lang/bun/files/patch-scripts_build_depVersionsHeader.ts
new file mode 100644
index 000000000000..1316c7b7fe5a
--- /dev/null
+++ b/lang/bun/files/patch-scripts_build_depVersionsHeader.ts
@@ -0,0 +1,13 @@
+-- Do not filter out "unknown" versions to avoid compilation errors when git revision is unavailable.
+
+--- scripts/build/depVersionsHeader.ts.orig	2026-05-14 00:45:08 UTC
++++ scripts/build/depVersionsHeader.ts
+@@ -91,7 +91,7 @@ export function generateDepVersionsHeader(cfg: Config)
+  */
+ export function generateDepVersionsHeader(cfg: Config): string {
+   const outPath = resolve(cfg.buildDir, "bun_dependency_versions.h");
+-  const versions = computeVersions(cfg).filter(([, v]) => v !== "" && v !== "unknown");
++  const versions = computeVersions(cfg).filter(([, v]) => v !== "");
+ 
+   const lines: string[] = [
+     "// Auto-generated by scripts/build/depVersionsHeader.ts. Do not edit.",
diff --git a/lang/bun/files/patch-scripts_build_deps_lolhtml.ts b/lang/bun/files/patch-scripts_build_deps_lolhtml.ts
new file mode 100644
index 000000000000..1767459d07b2
--- /dev/null
+++ b/lang/bun/files/patch-scripts_build_deps_lolhtml.ts
@@ -0,0 +1,22 @@
+-- Disable nightly features and -Zbuild-std for lolhtml as FreeBSD ports use stable Rust.
+
+--- scripts/build/deps/lolhtml.ts.orig	2026-05-14 00:17:32 UTC
++++ scripts/build/deps/lolhtml.ts
+@@ -67,7 +67,7 @@ export const lolhtml: Dependency = {
+ 
+     // FreeBSD aarch64 is Tier 3 — no prebuilt std, so -Zbuild-std is
+     // required regardless of release/debug.
+-    if (cfg.freebsd && cfg.arm64) {
++    if (false && cfg.freebsd && cfg.arm64) {
+       spec.buildStd = true;
+     }
+ 
+@@ -80,7 +80,7 @@ export const lolhtml: Dependency = {
+     // (linux-gnu, darwin, freebsd). musl/android keep the prebuilt-std
+     // -Cpanic=abort path.
+     const canBuildStdImmediateAbort =
+-      cfg.darwin || cfg.freebsd || (cfg.linux && cfg.abi !== "musl" && cfg.abi !== "android");
++      cfg.darwin || (false && cfg.freebsd) || (cfg.linux && cfg.abi !== "musl" && cfg.abi !== "android");
+     if (cfg.release && canBuildStdImmediateAbort) {
+       spec.buildStd = true;
+       spec.rustflags = [
diff --git a/lang/bun/files/patch-src_jsc_bindings_BunAnalyzeTranspiledModule.cpp b/lang/bun/files/patch-src_jsc_bindings_BunAnalyzeTranspiledModule.cpp
new file mode 100644
index 000000000000..f4b53e623d65
--- /dev/null
+++ b/lang/bun/files/patch-src_jsc_bindings_BunAnalyzeTranspiledModule.cpp
@@ -0,0 +1,13 @@
+-- Fix build with older JavaScriptCore: setHasTLA -> hasTLA.
+
+--- src/jsc/bindings/BunAnalyzeTranspiledModule.cpp.orig	2026-05-14 00:23:23 UTC
++++ src/jsc/bindings/BunAnalyzeTranspiledModule.cpp
+@@ -73,7 +73,7 @@ extern "C" JSModuleRecord* JSC_JSModuleRecord__create(
+ {
+     JSModuleRecord* result = JSModuleRecord::create(globalObject, vm, globalObject->moduleRecordStructure(), *moduleKey, sourceCode, declaredVariables, lexicalVariables, hasImportMeta ? ImportMetaFeature : 0);
+     result->m_isTypeScript = isTypescript;
+-    result->setHasTLA(hasTLA);
++    result->hasTLA(hasTLA);
+     return result;
+ }
+ 
diff --git a/lang/bun/files/patch-src_jsc_bindings_BunCPUProfiler.cpp b/lang/bun/files/patch-src_jsc_bindings_BunCPUProfiler.cpp
new file mode 100644
index 000000000000..fd035ae25b05
--- /dev/null
+++ b/lang/bun/files/patch-src_jsc_bindings_BunCPUProfiler.cpp
@@ -0,0 +1,40 @@
+-- Fix build with older JavaScriptCore: approximate<WTF::WallTime>() -> approximateWallTime().
+
+--- src/jsc/bindings/BunCPUProfiler.cpp.orig	2026-05-14 00:23:23 UTC
++++ src/jsc/bindings/BunCPUProfiler.cpp
+@@ -49,7 +49,7 @@ void startCPUProfiler(JSC::VM& vm)
+ {
+     // Capture the wall clock time when profiling starts (before creating stopwatch)
+     // This will be used as the profile's startTime
+-    s_profilingStartTime = MonotonicTime::now().approximate<WTF::WallTime>().secondsSinceEpoch().value() * 1000000.0;
++    s_profilingStartTime = MonotonicTime::now().approximateWallTime().secondsSinceEpoch().value() * 1000000.0;
+ 
+     // Create a stopwatch and start it
+     auto stopwatch = WTF::Stopwatch::create();
+@@ -364,7 +364,7 @@ void stopCPUProfiler(JSC::VM& vm, WTF::String* outJSON
+             auto& stackTrace = stackTraces[idx];
+             if (stackTrace.frames.isEmpty()) {
+                 samples.append(1);
+-                double currentTime = stackTrace.timestamp.approximate<WTF::WallTime>().secondsSinceEpoch().value() * 1000000.0;
++                double currentTime = stackTrace.timestamp.approximateWallTime().secondsSinceEpoch().value() * 1000000.0;
+                 double delta = std::max(0.0, currentTime - lastTime);
+                 timeDeltas.append(static_cast<long long>(delta));
+                 lastTime = currentTime;
+@@ -538,7 +538,7 @@ void stopCPUProfiler(JSC::VM& vm, WTF::String* outJSON
+ 
+             samples.append(currentParentId);
+ 
+-            double currentTime = stackTrace.timestamp.approximate<WTF::WallTime>().secondsSinceEpoch().value() * 1000000.0;
++            double currentTime = stackTrace.timestamp.approximateWallTime().secondsSinceEpoch().value() * 1000000.0;
+             double delta = std::max(0.0, currentTime - lastTime);
+             timeDeltas.append(static_cast<long long>(delta));
+             lastTime = currentTime;
+@@ -629,7 +629,7 @@ void stopCPUProfiler(JSC::VM& vm, WTF::String* outJSON
+         for (size_t idx : sortedIndices) {
+             auto& stackTrace = stackTraces[idx];
+ 
+-            double currentTime = stackTrace.timestamp.approximate<WTF::WallTime>().secondsSinceEpoch().value() * 1000000.0;
++            double currentTime = stackTrace.timestamp.approximateWallTime().secondsSinceEpoch().value() * 1000000.0;
+             long long deltaUs = static_cast<long long>(std::max(0.0, currentTime - lastTime));
+             totalTimeUs += deltaUs;
+             lastTime = currentTime;
diff --git a/lang/bun/files/patch-src_jsc_bindings_BunObject.cpp b/lang/bun/files/patch-src_jsc_bindings_BunObject.cpp
new file mode 100644
index 000000000000..a502a23628cc
--- /dev/null
+++ b/lang/bun/files/patch-src_jsc_bindings_BunObject.cpp
@@ -0,0 +1,13 @@
+-- Fix build with older JavaScriptCore: approximate<WTF::WallTime>() -> approximateWallTime().
+
+--- src/jsc/bindings/BunObject.cpp.orig	2026-05-14 00:25:32 UTC
++++ src/jsc/bindings/BunObject.cpp
+@@ -665,7 +665,7 @@ JSC_DEFINE_HOST_FUNCTION(functionBunSleep,
+ 
+     if (millisecondsValue.inherits<JSC::DateInstance>()) {
+         auto now = MonotonicTime::now();
+-        double milliseconds = uncheckedDowncast<JSC::DateInstance>(millisecondsValue)->internalNumber() - now.approximate<WTF::WallTime>().secondsSinceEpoch().milliseconds();
++        double milliseconds = uncheckedDowncast<JSC::DateInstance>(millisecondsValue)->internalNumber() - now.approximateWallTime().secondsSinceEpoch().milliseconds();
+         millisecondsValue = JSC::jsNumber(milliseconds > 0 ? std::ceil(milliseconds) : 0);
+     }
+ 
diff --git a/lang/bun/files/patch-src_jsc_bindings_NodeVMSourceTextModule.cpp b/lang/bun/files/patch-src_jsc_bindings_NodeVMSourceTextModule.cpp
new file mode 100644
index 000000000000..5ede304d6846
--- /dev/null
+++ b/lang/bun/files/patch-src_jsc_bindings_NodeVMSourceTextModule.cpp
@@ -0,0 +1,22 @@
+-- Fix build with older JavaScriptCore: setStatus -> status.
+
+--- src/jsc/bindings/NodeVMSourceTextModule.cpp.orig	2026-05-14 00:23:23 UTC
++++ src/jsc/bindings/NodeVMSourceTextModule.cpp
+@@ -352,7 +352,7 @@ JSValue NodeVMSourceTextModule::link(JSGlobalObject* g
+             // Unlinked for the whole graph), so do it for each dependency as
+             // we wire it in.
+             if (auto* cyclic = dynamicDowncast<JSC::CyclicModuleRecord>(resolvedRecord); cyclic && cyclic->status() == JSC::CyclicModuleRecord::Status::New)
+-                cyclic->setStatus(JSC::CyclicModuleRecord::Status::Unlinked);
++                cyclic->status(JSC::CyclicModuleRecord::Status::Unlinked);
+ 
+             // specifiers/moduleNatives were built from requestedModules() in
+             // [kLink], so the indices line up — pass the original ModuleRequest
+@@ -384,7 +384,7 @@ JSValue NodeVMSourceTextModule::link(JSGlobalObject* g
+     // innerModuleLinking now would walk into a record whose loadedModules()
+     // are still empty (cyclic case).
+     if (record->status() == JSC::CyclicModuleRecord::Status::New)
+-        record->setStatus(JSC::CyclicModuleRecord::Status::Unlinked);
++        record->status(JSC::CyclicModuleRecord::Status::Unlinked);
+ 
+     UNUSED_PARAM(scriptFetcher);
+     status(Status::Linked);
diff --git a/lang/bun/files/patch-src_jsc_bindings_bindings.cpp b/lang/bun/files/patch-src_jsc_bindings_bindings.cpp
new file mode 100644
index 000000000000..a2583cc9877c
--- /dev/null
+++ b/lang/bun/files/patch-src_jsc_bindings_bindings.cpp
@@ -0,0 +1,13 @@
+-- Fix build with older JavaScriptCore: JSPromiseReaction::tryGetContext -> reaction->context().
+
+--- src/jsc/bindings/bindings.cpp.orig	2026-05-14 00:25:32 UTC
++++ src/jsc/bindings/bindings.cpp
+@@ -2276,7 +2276,7 @@ static void collectAsyncStackFramesFromPromise(JSC::VM
+             JSC::JSPromiseReaction* reaction = nullptr;
+             if (!dynamicCastValue(reactionsValue, &reaction))
+                 return nullptr;
+-            JSC::JSValue context = JSC::JSPromiseReaction::tryGetContext(reactionsValue);
++            JSC::JSValue context = reaction->context();
+             JSC::InternalFieldTuple* tuple = nullptr;
+             if (dynamicCastValue(context, &tuple))
+                 context = tuple->getInternalField(0);


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a053df1.388be.58d2ab8c>