fix: verify against upstream manifest

This commit is contained in:
2026-06-26 03:17:08 +02:00
parent 6e344d1de6
commit 9e9ff35d13
2 changed files with 18 additions and 2 deletions
+1
View File
@@ -4,3 +4,4 @@
/claude-code-*.tgz /claude-code-*.tgz
/claude-code-*.pkg.tar* /claude-code-*.pkg.tar*
/claude-code-*.src.tar* /claude-code-*.src.tar*
/manifest.json
+17 -2
View File
@@ -10,11 +10,26 @@ options=('!strip')
provides=('claude') provides=('claude')
conflicts=('claude') conflicts=('claude')
source=("claude::https://downloads.claude.ai/claude-code-releases/${pkgver}/linux-x64/claude" source=("manifest.json::https://downloads.claude.ai/claude-code-releases/${pkgver}/manifest.json"
"claude::https://downloads.claude.ai/claude-code-releases/${pkgver}/linux-x64/claude"
"claude.sh") "claude.sh")
sha256sums=('c9f04d929f18bd9a101f3897f27de4e1e0f15ebe8400d4aaf02983d73dd66b1d' sha256sums=('SKIP'
'SKIP'
'd4f14ff492a181c59f42b32cf97d8682801d77ae7be0a96f5730c22755dd16c0') 'd4f14ff492a181c59f42b32cf97d8682801d77ae7be0a96f5730c22755dd16c0')
check() {
local manifest
manifest=$(< manifest.json)
[[ $manifest =~ \"linux-x64\"[^}]*\"checksum\":[[:space:]]*\"([a-f0-9]{64})\" ]]
local expected="${BASH_REMATCH[1]}"
local actual
actual=$(sha256sum claude | cut -d' ' -f1)
if [[ "$actual" != "$expected" ]]; then
error "Binary checksum mismatch: got $actual, manifest has $expected"
return 1
fi
}
package() { package() {
install -Dm755 claude "${pkgdir}/usr/lib/claude-code/claude" install -Dm755 claude "${pkgdir}/usr/lib/claude-code/claude"
install -Dm755 claude.sh "${pkgdir}/usr/bin/claude" install -Dm755 claude.sh "${pkgdir}/usr/bin/claude"