From 8f3824409baaec79efd7aa1f46f5818e6b30bce4 Mon Sep 17 00:00:00 2001
From: "shoney.arickathil"
Date: Tue, 25 Aug 2026 07:42:59 +0200
Subject: [PATCH] =?UTF-8?q?fix(site):=20glibc=20floor=20is=202.35,=20not?=
=?UTF-8?q?=202.38=20=E2=80=94=20read=20off=20the=20release?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The published v0.1.0 binaries need less than the page claimed:
woc imports up to GLIBC_2.35, wovm up to GLIBC_2.34. The page said
2.38, which was measured on a dev workstation (glibc 2.39) before CI
existed — and understating support turns working platforms away.
- supported systems: glibc 2.35+, covering Ubuntu 22.04+, Debian 12+,
Fedora 36+
- RHEL 9 (2.34) runs wovm but not woc: build elsewhere, copy the
self-contained binary
- say plainly that the floor is set by the machine that BUILT the
release, which is why CI pins ubuntu-22.04
- site-accept follows the new string
This is the pinned-runner decision paying off: 2.38 -> 2.35.
Co-Authored-By: Claude Opus 5 (1M context)
---
docs/examples/site/install/view.wo | 8 +++++---
scripts/site-accept.sh | 2 +-
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/docs/examples/site/install/view.wo b/docs/examples/site/install/view.wo
index a0a3391..ebad827 100644
--- a/docs/examples/site/install/view.wo
+++ b/docs/examples/site/install/view.wo
@@ -91,13 +91,15 @@ fn supported() -> Text {
Supported systems
Linux on x86-64 — the only target built today. There is no ARM, macOS or Windows build.
-
glibc 2.38 or newer. The binaries link the system C library dynamically and import symbols up to GLIBC_2.38. That covers Ubuntu 24.04+, Debian 13+, and Fedora 39+ — and rules out Ubuntu 22.04 (2.35), Debian 12 (2.36) and RHEL 9 (2.34).
+
glibc 2.35 or newer. The binaries link the system C library dynamically: woc imports symbols up to GLIBC_2.35 and wovm up to GLIBC_2.34, read off the published v0.1.0 release. That covers Ubuntu 22.04+, Debian 12+ and Fedora 36+. On RHEL 9 (2.34) the runtime works but the compiler does not — build elsewhere and copy the binary over, which is the point of a self-contained executable.
Not musl. Alpine needs a build against musl, which does not exist yet.
Nothing else. No JVM, no Node, no Python, no package manager. The two binaries and libc are the whole dependency list.
Check yours with
- ldd --version. If it is older than 2.38, build from source
- until a wider-compatibility release exists.
+ ldd --version. If it is older than 2.35, build from source
+ until a wider-compatibility release exists. The floor is set by the
+ machine that BUILT the release, not by the language — the CI runner is
+ pinned to Ubuntu 22.04 to keep it this low.
`;
}
diff --git a/scripts/site-accept.sh b/scripts/site-accept.sh
index e005d75..7e6c6ca 100755
--- a/scripts/site-accept.sh
+++ b/scripts/site-accept.sh
@@ -118,7 +118,7 @@ expect "packages index lists both" "$(hit /packages)" 200 "/packages/serv
expect "package detail shows its dep" "$(hit /packages/view)" 200 "writeonce-view"
expect "unknown package is a 404 page" "$(hit /packages/nope)" 404 "No such package"
expect "favicon is served as svg" "$(hit /favicon.svg)" 200 "