Skip to content

Linux release binaries require glibc 2.38+ — fail on Debian 12 / Ubuntu 22.04 / Amazon Linux 2023 #73

Description

@0xMassi

Summary

The prebuilt Linux release binaries (webclaw, webclaw-mcp, webclaw-server) require glibc 2.38+, so they fail to start on common server distros whose glibc is older — Debian 12, Ubuntu 22.04 LTS, Amazon Linux 2023, RHEL/Rocky 9, etc.

$ webclaw-mcp
webclaw-mcp: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by webclaw-mcp)

Confirmed on node:20-bookworm (Debian 12, glibc 2.36). The binary's max required symbol version:

$ objdump -T webclaw-mcp | grep -o 'GLIBC_[0-9.]*' | sort -V | tail -1
GLIBC_2.38

Root cause

release.yml builds the Linux targets on ubuntu-latest:

- target: x86_64-unknown-linux-gnu
  os: ubuntu-latest
- target: aarch64-unknown-linux-gnu
  os: ubuntu-latest

ubuntu-latest is now Ubuntu 24.04 (glibc 2.39), so the binaries link against GLIBC_2.38 symbols. glibc is forward-compatible but not backward-compatible: a binary built against 2.39 won't run on a host with 2.36.

Affected distros (glibc < 2.38)

Distro glibc
Ubuntu 22.04 LTS 2.35
Debian 12 (bookworm) 2.36
Amazon Linux 2023 2.34
RHEL 9 / Rocky 9 2.34

Impact

Worse now that create-webclaw actually downloads the prebuilt binary (#71 / #72): on these hosts the install succeeds (download + extract + config all work), but the binary then fails at runtime when the MCP client launches it. The scaffolder's verify step swallows the error, so it looks installed but silently doesn't run.

Suggested fixes (pick one)

  1. Pin the Linux build to ubuntu-22.04 (glibc 2.35) — smallest change, covers everything down to ~2.35.
  2. Build in a manylinux-style container with an older glibc baseline for a wider floor.
  3. Statically link musl (x86_64-unknown-linux-musl / aarch64-unknown-linux-musl) — zero glibc dependency, runs anywhere. Note: BoringSSL / wreq and any C deps need to build under musl, so this needs a test build.

Option 1 is the quick win; option 3 is the most robust long-term.

Context

Surfaced while verifying #71 (create-webclaw Windows install). Independent of that fix — this is a release-build issue, not a scaffolder issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions