From 1d441898c1351eceff910125d0ff516c8fd66213 Mon Sep 17 00:00:00 2001 From: Julius Knorr Date: Fri, 20 Mar 2026 22:40:16 +0100 Subject: [PATCH 1/3] fix: Attempt to build with ubuntu22.04 Signed-off-by: Julius Knorr --- build/Dockerfile | 49 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 6e7007b..3b20ef6 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -10,27 +10,40 @@ FROM ubuntu:24.04 AS base rm -rf /var/lib/apt/lists/* #### CORE #### -FROM ubuntu:24.04 AS core +# Build on Ubuntu 22.04 (Jammy, glibc 2.35) so the output binaries never +# reference glibc symbols newer than 2.35. This covers Debian 12 (glibc 2.36) +# and Rocky Linux 9 (glibc 2.34 — glibc 2.35 symbols are avoided in practice +# as the code does not call any functions first introduced in 2.35). +# libstdc++ and libgcc are statically linked via -static-libstdc++ -static-libgcc +# (see common.cmake) so the GLIBCXX version on the target system is irrelevant. +# glibc itself cannot be statically linked into shared libraries, hence the +# old Ubuntu base remains necessary. +FROM ubuntu:22.04 AS core ARG BUILD_ROOT=/package ARG TARGETARCH ENV TZ=Etc/UTC ENV DEBIAN_FRONTEND=noninteractive -ENV PLEASE_PRELOAD_LIBSTDCPP=true RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \ + echo "deb http://archive.ubuntu.com/ubuntu jammy universe" >> /etc/apt/sources.list && \ + apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common && \ + add-apt-repository -y ppa:deadsnakes/ppa && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y \ git curl sudo wget ssh \ build-essential make cmake ninja-build pkg-config \ libglib2.0-dev \ - python3 python-is-python3 python3-venv python3-setuptools \ - python3-httplib2 \ + python3.11 python3.11-venv python3.11-distutils \ + python3-setuptools python3-httplib2 \ lsb-release libboost-all-dev findutils \ gn \ + && update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 \ + && update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1 \ && rm -rf /var/lib/apt/lists/* -# clang-13 required for V8 9.x — only available on jammy (22.04), not noble (24.04) +# clang-13 required for V8 9.x; available natively via the llvm-toolchain-jammy-13 repo RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | \ gpg --dearmor -o /etc/apt/keyrings/llvm-snapshot.gpg && \ echo "deb [signed-by=/etc/apt/keyrings/llvm-snapshot.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-13 main" \ @@ -61,7 +74,7 @@ COPY core /core ENV BUILD_ROOT=${BUILD_ROOT} RUN --mount=type=cache,target=/build-cache \ - --mount=type=cache,target=/package/third_party/install \ + --mount=type=cache,target=/build-cache/third_party/install \ < Date: Fri, 27 Mar 2026 22:16:59 +0100 Subject: [PATCH 2/3] ci: Temporarily only build core target in CI Skip core-wasm, web-apps, server, sdkjs, combine, develop, and packages jobs to isolate the core build for testing. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5446268..2322f70 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -96,9 +96,10 @@ jobs: matrix: target: - core - - core-wasm - - web-apps - - server + # TEMPORARY: only building core to test build compatibility + # - core-wasm + # - web-apps + # - server steps: - name: Restore cache @@ -131,6 +132,7 @@ jobs: cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ matrix.target }}-buildcache,mode=max build-sdkjs: + if: false # TEMPORARY: skip — only building core runs-on: self-hosted needs: build permissions: @@ -173,6 +175,7 @@ jobs: cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.ref.outputs.name }}-sdkjs-buildcache,mode=max combine: + if: false # TEMPORARY: skip — only building core runs-on: self-hosted needs: build-sdkjs permissions: @@ -229,6 +232,7 @@ jobs: cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.ref.outputs.name }}-final-buildcache,mode=max build-develop: + if: false # TEMPORARY: skip — only building core runs-on: self-hosted needs: combine permissions: @@ -281,6 +285,7 @@ jobs: cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.ref.outputs.name }}-dev-buildcache,mode=max build-packages: + if: false # TEMPORARY: skip — only building core runs-on: self-hosted needs: combine permissions: From 138f9677ae49e4e9aa3aae6f1a3b9bcb33289664 Mon Sep 17 00:00:00 2001 From: Julius Knorr Date: Tue, 31 Mar 2026 11:20:32 +0200 Subject: [PATCH 3/3] fixup! fix: Attempt to build with ubuntu22.04 --- build/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Dockerfile b/build/Dockerfile index 3b20ef6..cc7e027 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -26,9 +26,9 @@ ENV TZ=Etc/UTC ENV DEBIAN_FRONTEND=noninteractive RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \ - echo "deb http://archive.ubuntu.com/ubuntu jammy universe" >> /etc/apt/sources.list && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common && \ + add-apt-repository -y universe && \ add-apt-repository -y ppa:deadsnakes/ppa && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y \