mirror of
https://github.com/NixOS/nix.git
synced 2025-12-22 08:51:08 +01:00
This progress on #11896. It introduces some issues temporarily which will be fixed when #11928 is fixed. The SQL tables are left in place because there is no point inducing a migration now, when we will be immediately landing more changes after this that also require schema changes. They will simply be ignored by in this commit, and so all data will be preserved.
33 lines
1.2 KiB
Bash
33 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
||
|
||
source common.sh
|
||
|
||
requireDaemonNewerThan "2.4pre20210625"
|
||
|
||
export REMOTE_STORE_DIR="$TEST_ROOT/remote_store"
|
||
export REMOTE_STORE="file://$REMOTE_STORE_DIR"
|
||
|
||
rm -rf "$REMOTE_STORE_DIR"
|
||
clearStore
|
||
|
||
# Build dep1 and push that to the binary cache.
|
||
# This entails building (and pushing) current-time.
|
||
nix copy --to "$REMOTE_STORE" -f nondeterministic.nix dep1
|
||
clearStore
|
||
sleep 2 # To make sure that `$(date)` will be different
|
||
# Build dep2.
|
||
# As we’ve cleared the cache, we’ll have to rebuild current-time. And because
|
||
# the current time isn’t the same as before, this will yield a new (different)
|
||
# realisation
|
||
nix build -f nondeterministic.nix dep2 --no-link
|
||
|
||
# Build something that depends both on dep1 and dep2.
|
||
# If everything goes right, we should rebuild dep2 rather than fetch it from
|
||
# the cache (because that would mean duplicating `current-time` in the closure),
|
||
# and have `dep1 == dep2`.
|
||
|
||
# FIXME: Force the use of small-step resolutions only to fix this in a
|
||
# better way (#11896, #11928).
|
||
skipTest "temporarily broken because dependent realisations are removed"
|
||
|
||
nix build --substituters "$REMOTE_STORE" -f nondeterministic.nix toplevel --no-require-sigs --no-link
|