remove nix {shell,run}
chroot special case code #372
Labels
No labels
Area/build-packaging
Area/cli
Area/evaluator
Area/fetching
Area/flakes
Area/language
Area/profiles
Area/protocol
Area/releng
Area/remote-builds
Area/repl
Area/store
bug
crash 💥
Cross Compilation
devx
docs
Downstream Dependents
E/easy
E/hard
E/help wanted
E/reproducible
E/requires rearchitecture
imported
Needs Langver
OS/Linux
OS/macOS
performance
regression
release-blocker
RFD
stability
Status
blocked
Status
invalid
Status
postponed
Status
wontfix
testing
testing/flakey
ux
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lix-project/lix#372
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
what
runProgramInStore
does probably can be done entirely withpam_mount
andpam_namespace
, and much better at that. we should not saddle ourselves with this kind of potentially application-breaking stuff if we can avoid it.Yes, but configuring those requires root, right? Or are they on in a configurable manner in the default auth stack of the average distro? Regardless I think it is very confusing that Nix automatically does this evil magic.
they do require admin intervention. however, looking at how to even trigger these code path, the only readily available way to trigger this code at all is to set
NIX_STORE_DIR
to something that doesn't match the compile-time default. at the same time this feature directly contradicts in-code documentation:not only can you copy between them, you can also specifically
nix {shell,run}
from such a store but not run directly, which is extremely susyeah i mean, i understand both sides of this, like, in principle you'd like to be able to do this thing in hpc installations or so where you just untar the thing in your home directory, but we just don't support it well at all and if we deleted the functionality from ourselves, i assume everyone using it in their manual setups could just replace it with bwrap
the advantage of it being "official" is that people know it can be done, but not much else.
Also it is hit by another code path: no daemon available and can't write to /nix/store. This means a lot more people might be hitting it than you think.