Skip to content

Fix tmpfiles activation#493

Draft
jmikedupont2 wants to merge 2 commits into
numtide:mainfrom
meta-introspector:fix-tmpfiles-activation
Draft

Fix tmpfiles activation#493
jmikedupont2 wants to merge 2 commits into
numtide:mainfrom
meta-introspector:fix-tmpfiles-activation

Conversation

@jmikedupont2

Copy link
Copy Markdown

Resolves an activation failure caused by broken symlinks in the /etc static
environment, often triggered by tmpfiles.d configurations. The activation script now warns and skips broken links instead of crashing.

mike dupont added 2 commits June 13, 2026 17:05
Replace cargoLock.lockFile with cargoVendorDir = "vendor" so
the build is fully pure — no network access to crates.io needed.
All 107 crate dependencies are vendored locally via cargo vendor.

This follows principle numtide#3 (pure Nix builds) and the crate2nix-zos
approach of declaring all build inputs locally.
The activation script for /etc files uses fs::canonicalize to resolve
all paths when scanning the static environment. This causes the activation
to fail with a 'No such file or directory' error if it encounters a
broken symlink.

This can happen if a Nix module generates a path to a subdirectory
of a package that doesn't exist (e.g., /lib/tmpfiles.d), resulting
in a broken link in the symlinkJoin that creates the /etc static
environment.

This patch makes the activation script more resilient by checking for
and skipping broken or unreadable symlinks, logging a warning instead
of crashing.
@jmikedupont2 jmikedupont2 marked this pull request as draft June 13, 2026 21:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant