Commit e268550
authored
claude: use the glibc Linux build, not musl (#15)
## 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](Genesis-Embodied-AI/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](#14) CI
was green for that reason.
Linear: PLAT-10141 parent f2f44cd commit e268550
2 files changed
Lines changed: 8 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
28 | | - | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
29 | 30 | | |
30 | 31 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
13 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
14 | 16 | | |
15 | 17 | | |
16 | 18 | | |
17 | | - | |
| 19 | + | |
18 | 20 | | |
19 | 21 | | |
20 | 22 | | |
| |||
0 commit comments