Skip to content

Node 26.13.1 build (RHEL 8 toolchain) for LunaServer - #34

Merged
jrsells merged 7 commits into
v26.13.1from
jrsells/node-v26.13.1-rhel8
Nov 12, 2026
Merged

jrsells merged 7 commits into
v26.13.1from
jrsells/node-v26.13.1-rhel8

Conversation

@jrsells

@jrsells jrsells commented Nov 11, 2026

Copy link
Copy Markdown

Moves our Node 26 builds to 26.13.1, a security release with nine high-severity CVEs in http2, tls and http.

The base branch v26.13.1 is upstream's signed v26.13.1 tag, unchanged. This branch adds the same seven build commits as v26.12.1 (#31), cherry-picked without conflicts and with no Node or V8 source changes. Each build file is identical to the v26.12.1 branch.

The builds derive the version from src/node_version.h, so they publish to new node-v26.13.1-release and node-v26.13.1-fips-release slots. The native packages built for 26.12.1 keep working: a patch release has the same NODE_MODULE_VERSION and the same pointer-compression configuration.

jrsells and others added 7 commits November 11, 2026 14:51
Standard and FIPS builds configured with
--experimental-enable-pointer-compression (multi-cage, V8 sandbox off)
and Temporal support, with no Node or V8 source changes.

Node 26 needs GCC >= 13.2, newer than Ubuntu 22.04's libstdc++ (the
sandbox and remote-execution hosts). Like the official release
binaries, these build on RHEL 8 (AlmaLinux 8) with gcc-toolset-14,
which keeps the runtime requirements at glibc 2.28, GLIBCXX_3.4.25 and
libatomic. The FIPS build compiles against OpenSSL 3.0 LTS built from
source and links against the system libssl.so.3 at runtime.

Each build is verified before it is published: symbol versions must be
available on Ubuntu 22.04, and asana-smoke-test.js must pass with
LD_BIND_NOW=1 on stock Ubuntu 22.04 and on Wolfi.

Native packages are rebuilt with the same toolchain; @datadog/pprof
moves to 5.20.0, the first line with Node 26 (ABI 147) support.

Co-authored-by: Cursor <[email protected]>
gcc-toolset on RHEL 8 doesn't build PIE by default, so the Node 26
binaries lost the ASLR coverage our Node 22 builds got from Ubuntu's
GCC. asana-verify-build.sh now fails a non-PIE build.

Co-authored-by: Cursor <[email protected]>
BUILD_REF defaulted to the upstream v26.12.1 branch, so running the
workflow from another branch silently built different code than the
standard build. Leave it empty to build the branch the workflow runs
from, as build-node.yml does.

Co-authored-by: Cursor <[email protected]>
Pin almalinux:8 and Rust to the versions that built the published
binaries and packages. The dnf packages, including gcc-toolset-14,
still float. The binaries need GLIBCXX_3.4.21 at most and don't link
libatomic.
GitHub only runs workflow_run triggers from the default branch's copy of
a workflow, so this one never fired. Correct the S3 comment: main's copy
builds Node 22's packages, so this branch's are uploaded by hand.

Co-authored-by: Cursor <[email protected]>
Node exits on an option it doesn't know, so a release that drops one of
the flags LunaServer passes should fail the smoke test, not LunaServer.

Co-authored-by: Cursor <[email protected]>
@jrsells
jrsells merged commit 112f0fa into v26.13.1 Nov 12, 2026
31 of 35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant