Skip to content

claude: use the glibc Linux build, not musl#15

Merged
etiennecoutaud merged 1 commit into
mainfrom
etienne/claude-glibc
Jun 25, 2026
Merged

claude: use the glibc Linux build, not musl#15
etiennecoutaud merged 1 commit into
mainfrom
etienne/claude-glibc

Conversation

@etiennecoutaud

Copy link
Copy Markdown
Contributor

What

Switch the claude plugin's Linux download from the musl build to the glibc build (linux-{arch}/claude).

Why

The upstream linux-x64-musl binary is not static: it is dynamically linked against /lib/ld-musl-x86_64.so.1. On a glibc host (e.g. the ubuntu-24.04 CI runners) that loader is absent, so executing it fails with No such file or directory (os error 2) (ENOENT from the missing interpreter).

This surfaced when claude-marketplace#1 CI ran proto run claude -- plugin validate on ubuntu and failed even though install succeeded.

$ file linux-x64-musl/claude → interpreter /lib/ld-musl-x86_64.so.1   # fails on glibc
$ file linux-x64/claude      → interpreter /lib64/ld-linux-x86-64.so.2 # runs on ubuntu

The glibc build runs on standard Linux distros and CI. (The musl build remains the right choice only on musl/Alpine hosts, which this repo's CI and consumers are not.)

Note on the smoke test

scripts/smoke-test.sh did not catch this: it asserts proto bin claude is a -x file but never executes it, so a binary built for the wrong libc still passes. The original #14 CI was green for that reason.

Linear: PLAT-1014

The upstream linux-x64-musl binary is dynamically linked against
/lib/ld-musl-x86_64.so.1, not static, so it fails with ENOENT on glibc
hosts (e.g. ubuntu CI runners). The smoke test missed this: it checks the
binary is executable but never runs it. Switch to the glibc build, which
runs on standard Linux and CI.
@etiennecoutaud etiennecoutaud requested a review from a team as a code owner June 25, 2026 09:37
@etiennecoutaud etiennecoutaud enabled auto-merge (squash) June 25, 2026 09:37
@jlouazel

Copy link
Copy Markdown
Collaborator

Good note to beef-up the smoke test. I'll think of something

@etiennecoutaud etiennecoutaud merged commit e268550 into main Jun 25, 2026
5 checks passed
@etiennecoutaud etiennecoutaud deleted the etienne/claude-glibc branch June 25, 2026 09:39
@etiennecoutaud

etiennecoutaud commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants