Parent: #266. Related: #272 adds WebKitGTK helper resource declarations, but this ticket fixes the generic native packaging core and does not qualify WebKit rendering, production relocation or sandbox behavior.
At main 4bc358120, a real macOS public fixUp regression reproduces:
- A declared selected library provider has a native
libexec/provider/helperresource plus its own message file. - The helper links a second declared library that the application/provider library do not use. Before processing, the real helper prints
42:owned helper resource; the application independently prints7. fixUp(stage, 'darwin-arm64', [], declaredPackages)reports success.- After moving the finished artifact into a fresh prefix with spaces and removing all source/dependency roots, the actual helper aborts:
Library not loaded: @rpath/libfixture-helper-only.1.dylib.
The maintained native-runtime bundler queues binaries before copying runtimeResources and does not enqueue those copied native helpers. Later loader normalization still mutates their bytes, while the resource receipt retains its pre-normalization SHA256.
Owning paths:
packages/ts-pantry/scripts/native-runtime.ts- public orchestration
packages/ts-pantry/scripts/fix-up.ts - maintained native relocation tests under
packages/ts-pantry/test/
Acceptance:
- A copied native helper owned by a selected shared-library provider participates in recursive declared-library closure.
- Missing helper-only providers fail public fixUp before publication; no host search/copy or validation exemption.
- Actual relocated macOS helper returns literal42 and reads its own resource with all staging/source/dependency roots unavailable and loader overrides cleared.
- Actual native Linux ELF counterpart runs through normal maintained CI; a Mac/foreign inspection is not Linux runtime qualification.
- Resource receipt hashes match finalized artifact bytes after loader/signature normalization; existing ownership/conflict/signing/layout checks stay strict.
- Library-less provider resource inclusion remains a separate API/receipt design, outside this slice. No WebKit recipe/profile/sandbox relaxation or provider qualification claim.
Initial local regression:0pass/1fail,11assertions, Apple clang21, Bun1.4.4. Original failure retained locally; no source fix or publication yet.