You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Linux LLVM helper packages ship scriptc-llvm-codegen without the executable bit #430
The Linux LLVM helper packages publish bin/scriptc-llvm-codegen with mode 0644, so every native build on Linux fails right after npm install scriptc:
error SC3003: LLVM native helper package @scriptc/llvm-linux-x64-gnu is incomplete: .../node_modules/@scriptc/llvm-linux-x64-gnu/bin/scriptc-llvm-codegen is not readable and executable; reinstall scriptc
Reinstalling doesn't help. chmod +x on the helper does.
@scriptc/llvm-linux-x64-gnu 0.1.2 and 0.1.3 have the same 0644 mode.
Cause
release.yml restores 755 on every bin/scriptc-llvm-codegen before packing, but pnpm pack then normalises file modes: it keeps the executable bit only for files named in the manifest's bin field. packages/llvm-darwin-arm64/package.json declares
and the Linux helper manifests don't ("bin" appears only in files). I reproduced this with pnpm 11.1.3 by packing both package directories with a 755 stand-in binary: the darwin tarball kept rwxr-xr-x, and the linux-x64-gnu tarball got rw-r--r--.
scripts/verify-llvm-package.mjs already checks the bin entry and X_OK, but the release job runs it only on the darwin-arm64 tarball, so it can't catch this.
Suggested fix
Add the same bin entry to the Linux helper manifests (and win32 for consistency).
Run verify-llvm-package.mjs on every helper tarball, not just darwin-arm64.
Activity
Pack POSIX LLVM helpers with their executable bit
Fix published LLVM helper execute permissions (#430) (#442)