Repository navigation
Conversation
Debian 11 is end of life and deb.debian.org no longer serves its security pool, so building build-containers/Dockerfile.debian fails with 404s for libssl-dev, libssl1.1 and ca-certificates. That image backs the Linux glibc release prebuild and the CI package-artifact job. Point the bullseye sources at archive.debian.org so the image keeps building against glibc 2.31. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Linux arm64 hosts (Ampere, Graviton, Raspberry Pi 4/5 on 64-bit OS) have no prebuild today, so every install there falls back to a cmake-js source build of libdatachannel. - build a linux-arm64-glibc prebuild on ubuntu-24.04-arm with the existing Debian bullseye container (glibc 2.31) - accept ELF aarch64 (machine 183) linked against glibc in the prebuild validator; arm64 musl stays unsupported - require the new asset in prebuild:check and verify it in the published install workflow - add an ubuntu-24.04-arm / Node 24 leg to the CI build matrix - list the target in the README platform table Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Linux arm64 hosts (Ampere/Neoverse cloud VMs, Graviton, Raspberry Pi 4/5 on a 64-bit OS) have no prebuild today, so every install there falls back to a
cmake-jssource build of libdatachannel. On small ARM VMs that means installing a C++ toolchain and compiling on every deploy.This adds a
linux-arm64-glibcprebuild, following the existingwin32-arm64anddarwin-arm64pattern:release.yml: newlinux-arm64-glibcleg onubuntu-24.04-arm, reusingbuild-containers/Dockerfile.debian(glibc 2.31); the matrix now carriesosandarchinstead of hardcodingx64.scripts/prebuild-integrity.js: accept ELF aarch64 (machine 183) linked against glibc. arm64 musl stays unsupported and keeps the source-build fallback.scripts/check-prebuilds.js: require the new asset before release upload.published-install.yml: verify the published package on an arm64 runner.ci.yml: add anubuntu-24.04-arm/ Node 24 leg to the build matrix, so the arm64 build is exercised before release day (same aswindows-11-arm).README.md: list the target.Depends on #40: the Debian bullseye image no longer builds without it. This branch includes that commit and will be rebased once #40 is merged.
Verification
npm run checknpm run native:check- in the fork CI matrix, includingubuntu-24.04-armnpm run build- in the fork CI matrix, includingubuntu-24.04-armnpm test- locally fortest/prebuild-integrity.test.js(11/11), full suite in the fork CI matrix includingubuntu-24.04-armnpm run api:check- in the fork CI matrixnpm run types:check- in the fork CI matrixnpm run e2e:chrome- not applicable; no browser interop path changenpm run wpt:selection:check- not applicable; no WPT changenpm run wpt:smoke- not applicablenpm run wpt:smoke:check- not applicablenpm run wpt:test/npm run wpt:check:strict- not applicable; no WebRTC behavior changeFork CI run: https://github.com/pedrojhfs/webrtc/actions/runs/37535904691. Every job passes except
windows-11-arm / Node 24, which also fails on an unchanged copy ofmain(https://github.com/pedrojhfs/webrtc/actions/runs/37539759758) in the same way: all subtests pass, buttest/basic.test.jsandtest/nonstandard.test.jsexit non-zero. That failure predates this change and is not addressed here.Additionally:
release.ymlinsideDockerfile.debianonlinux/arm64; it producedwebrtc-node-v0.2.1-napi-v8-linux-arm64-glibc.tar.gzplus its.sha256, and the archive passesvalidateArchiveFileforlinux/arm64/glibcRTCPeerConnectionpair opened a data channel and exchanged a message; OpenSSL is linked statically (lddshows only libc)release.ymldispatch itself was not run on the fork (workflow dispatch is not available there before a default-branch event), so the first real run of the new release leg will be the next release; the CI leg above runs the same native build on the same runner imageWPT impact
None.
wpt-manifest.jsonanddocs/divergences.mdare unchanged.Browser interoperability
No Chrome E2E behavior or coverage changes.
Notes
ubuntu-24.04-arminrelease.yml,published-install.ymlandci.yml. No new permissions or secrets.publishnow requires thelinux-arm64-glibcasset, so a broken arm64 build blocks the release, the same as the other targets.linux-arm64, so uploading an asset to existing releases would not help. A manualpublished-installdispatch against@latest(0.2.1) will fail the arm64 leg until such a release exists; theworkflow_runpath tests the newly released version and is unaffected.🤖 Generated with Claude Code