forked from lix-project/lix
e7c2b35827
Previously, IFDs would be built within the eval store, even though one
is typically using `--eval-store` precisely to *avoid* local builds.
Because the resulting Nix expression must be copied back to the eval
store in order to be imported, this requires the eval store to trust
the build store's signatures.
(cherry picked from commit c3942ef85f
)
39 lines
1.1 KiB
Bash
39 lines
1.1 KiB
Bash
source common.sh
|
|
|
|
# Using `--eval-store` with the daemon will eventually copy everything
|
|
# to the build store, invalidating most of the tests here
|
|
needLocalStore "“--eval-store” doesn't achieve much with the daemon"
|
|
|
|
eval_store=$TEST_ROOT/eval-store
|
|
|
|
clearStore
|
|
rm -rf "$eval_store"
|
|
|
|
nix build -f dependencies.nix --eval-store "$eval_store" -o "$TEST_ROOT/result"
|
|
[[ -e $TEST_ROOT/result/foobar ]]
|
|
(! ls $NIX_STORE_DIR/*.drv)
|
|
ls $eval_store/nix/store/*.drv
|
|
|
|
clearStore
|
|
rm -rf "$eval_store"
|
|
|
|
nix-instantiate dependencies.nix --eval-store "$eval_store"
|
|
(! ls $NIX_STORE_DIR/*.drv)
|
|
ls $eval_store/nix/store/*.drv
|
|
|
|
clearStore
|
|
rm -rf "$eval_store"
|
|
|
|
nix-build dependencies.nix --eval-store "$eval_store" -o "$TEST_ROOT/result"
|
|
[[ -e $TEST_ROOT/result/foobar ]]
|
|
(! ls $NIX_STORE_DIR/*.drv)
|
|
ls $eval_store/nix/store/*.drv
|
|
|
|
clearStore
|
|
rm -rf "$eval_store"
|
|
|
|
# Confirm that import-from-derivation builds on the build store
|
|
[[ $(nix eval --eval-store "$eval_store?require-sigs=false" --impure --raw --file ./ifd.nix) = hi ]]
|
|
ls $NIX_STORE_DIR/*dependencies-top/foobar
|
|
(! ls $eval_store/nix/store/*dependencies-top/foobar)
|