This uses runInLinuxVM to seed tvix-store with a path/closure, then sets
up a local-overlay store mount config using the following setup:
/tmp/tvix exposes everything seeded into tvix
/tmp/scratch represents an empty "local" nix store
This is overlayed to /tmp/merged/nix/store
(using /tmp/work as an overlayfs work dir).
Nix is configured with the local-overlay feature:
- setting /tmp/merged as root
- configuring a unix:///tmp/tvix-daemon.sock as lower store,
with lower-store.real set to /tmp/tvix
- configuring /tmp/scratch as an upper layer
For some reasons, check-mount needs to be set to false, as Nix doesn't
seem happy with the way we set up the mountpoints.
Change-Id: I03e1cf1d3aaa021a63dcb30ae482a6c3977851ba
Reviewed-on: https://cl.snix.dev/c/snix/+/30087
Reviewed-by: Vova Kryachko <v.kryachko@gmail.com>
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Tested-by: besadii