diff --git a/claude/README.md b/claude/README.md index 4ddd8aa..16af270 100644 --- a/claude/README.md +++ b/claude/README.md @@ -24,7 +24,8 @@ also published at ## Notes - Binaries are served from `https://downloads.claude.ai/claude-code-releases/` - as a single executable per platform (no archive). Linux uses the static - `musl` build so it runs on both glibc and musl hosts. + as a single executable per platform (no archive). Linux uses the glibc build: + the upstream `musl` variant is dynamically linked against the musl loader (not + static), so it fails on glibc hosts such as standard CI runners. - Upstream publishes checksums only inside a per-version `manifest.json`, which the TOML plugin format cannot parse, so installs are not checksum-verified. diff --git a/claude/plugin.toml b/claude/plugin.toml index 6e41fa6..783f434 100644 --- a/claude/plugin.toml +++ b/claude/plugin.toml @@ -9,12 +9,14 @@ aarch64 = "arm64" x86_64 = "x64" # Claude Code ships a single prebuilt binary per platform (no archive), served -# from downloads.claude.ai under a {version}/{platform}/ path. The Linux -# build uses the static musl variant so it runs on both glibc and musl hosts. +# from downloads.claude.ai under a {version}/{platform}/ path. Linux uses +# the glibc build: the upstream "musl" variant is not static (it is dynamically +# linked against /lib/ld-musl-x86_64.so.1), so it fails with ENOENT on glibc hosts +# such as the ubuntu CI runners; the glibc build runs on standard Linux and CI. # Per-version checksums exist only inside a manifest.json (keyed JSON), which the # TOML plugin format cannot parse, so no checksum-url is published here. [platform.linux] -download-file = "linux-{arch}-musl/claude" +download-file = "linux-{arch}/claude" exe-path = "claude" [platform.macos]