fix(up): run guix container with --emulate-fhs for the harness binary #12

Merged
pti merged 1 commit from fix-guix-container-fhs into main 2026-07-07 14:56:40 +02:00
Owner

Claude Code ships an FHS-linked executable — it needs /usr/bin/env and the standard loader /lib64/ld-linux-x86-64.so.2, which a pure Guix container (only /gnu/store) doesn't have, so claude can't find its interpreter. Add -F/--emulate-fhs to the guix shell --container invocation.

Verified (exact args)

loader: present         # /lib64/ld-linux-x86-64.so.2
env: present            # /usr/bin/env
node via env-shebang: v22.14.0
toolchain: go=y git=y node=y
iso: home= . ..         # host $HOME still empty → isolation intact

No extra manifest packages — -F provides the FHS layer. Resolves the Node/-F open question the design doc flagged.

Build/vet/golangci-lint clean.

🤖 Generated with Claude Code

Claude Code ships an **FHS-linked** executable — it needs `/usr/bin/env` and the standard loader `/lib64/ld-linux-x86-64.so.2`, which a pure Guix container (only `/gnu/store`) doesn't have, so `claude` can't find its interpreter. Add `-F`/`--emulate-fhs` to the `guix shell --container` invocation. ## Verified (exact args) ``` loader: present # /lib64/ld-linux-x86-64.so.2 env: present # /usr/bin/env node via env-shebang: v22.14.0 toolchain: go=y git=y node=y iso: home= . .. # host $HOME still empty → isolation intact ``` No extra manifest packages — `-F` provides the FHS layer. Resolves the Node/`-F` open question the design doc flagged. Build/vet/golangci-lint clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(up): run guix container with --emulate-fhs for the harness binary
All checks were successful
Lint / lint (pull_request) Successful in 19s
b3cf71520c
Claude Code ships an FHS-linked executable that needs /usr/bin/env and the
standard loader (/lib64/ld-linux-x86-64.so.2), which a pure Guix container
(only /gnu/store) lacks. Add -F/--emulate-fhs to the `guix shell --container`
invocation so those paths exist and the harness can start.

Verified: with -F the loader + /usr/bin/env are present and node runs via an
env-shebang; the flat toolchain (go/git/node) is intact and credential
isolation is unaffected (host $HOME still not shared). No extra manifest
packages needed — -F provides the FHS layer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pti merged commit 1584886570 into main 2026-07-07 14:56:40 +02:00
pti deleted branch fix-guix-container-fhs 2026-07-07 14:56:41 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pti/wraptool!12
No description provided.