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 c3942ef85ffbd83391410fbf012f1de366d2463c)
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)
|