2020-10-12 23:51:23 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
source common.sh
|
|
|
|
|
2023-04-19 21:24:55 +00:00
|
|
|
# Need backend to support text-hashing too
|
|
|
|
requireDaemonNewerThan "2.16.0pre20230419"
|
|
|
|
|
2023-04-17 23:02:45 +00:00
|
|
|
# Globally enable dynamic-derivations in addition to CA derivations
|
|
|
|
enableFeatures "dynamic-derivations"
|
|
|
|
|
|
|
|
restartDaemon
|
2021-09-30 23:57:07 +00:00
|
|
|
|
2020-10-12 23:51:23 +00:00
|
|
|
# In the corresponding nix file, we have two derivations: the first, named root,
|
|
|
|
# is a normal recursive derivation, while the second, named dependent, has the
|
|
|
|
# new outputHashMode "text". Note that in "dependent", we don't refer to the
|
|
|
|
# build output of root, but only to the path of the drv file. For this reason,
|
|
|
|
# we only need to:
|
|
|
|
#
|
|
|
|
# - instantiate the root derivation
|
|
|
|
# - build the dependent derivation
|
|
|
|
# - check that the path of the output coincides with that of the original derivation
|
|
|
|
|
2023-04-17 23:02:45 +00:00
|
|
|
drv=$(nix-instantiate ./text-hashed-output.nix -A root)
|
2023-02-28 17:46:00 +00:00
|
|
|
nix show-derivation "$drv"
|
2020-10-12 23:51:23 +00:00
|
|
|
|
2023-04-17 23:02:45 +00:00
|
|
|
drvDep=$(nix-instantiate ./text-hashed-output.nix -A dependent)
|
2023-02-28 17:46:00 +00:00
|
|
|
nix show-derivation "$drvDep"
|
2020-10-12 23:51:23 +00:00
|
|
|
|
2023-04-17 23:02:45 +00:00
|
|
|
out1=$(nix-build ./text-hashed-output.nix -A dependent --no-out-link)
|
2020-10-12 23:51:23 +00:00
|
|
|
|
2021-09-30 23:57:07 +00:00
|
|
|
nix path-info $drv --derivation --json | jq
|
|
|
|
nix path-info $out1 --derivation --json | jq
|
2020-10-12 23:51:23 +00:00
|
|
|
|
|
|
|
test $out1 == $drv
|