Problem
A Pantry-managed project environment can report a successful install while retaining a zero-byte package executable. In zig-utils/zig-waf, Pantry 0.10.34 reports ziglang.org@0.17.0-dev.1441_d5181a9c9 installed, but:
pantry/ziglang.org/v0.17.0-dev.1441_d5181a9c9/bin/zig: 0 bytes
~/.local/share/pantry/global/packages/ziglang.org/v0.17.0-dev.1441_d5181a9c9/bin/zig: 197784832 bytes
pantry/.bin/zig -> the zero-byte project copyThe shim consequently exits 0 without compiling, which can create false-positive local checks. Re-running pantry install does not validate or repair the project copy.
Expected behavior
- Installation verifies that declared program files are regular, non-empty executables before reporting success.
- A corrupt project materialization is atomically replaced from a verified global package or re-fetched.
- Failed/canceled copies cannot leave a destination that later counts as installed.
- Add a regression test starting from a zero-byte project executable with an intact global package.
Context
Discovered while qualifying zig-utils/zig-waf#8 with the exact compiler pinned by Pantry. The global compiler was used to obtain valid evidence; the corrupt shim was not accepted as test evidence.