mirror of
https://github.com/NixOS/nix
synced 2025-06-28 01:11:15 +02:00
Derivations can output "text-hashed" data
In particular, this means that derivations can output derivations. But that ramification isn't (yet!) useful as we would want, since there is no way to have a dependent derivation that is itself a dependent derivation.
This commit is contained in:
parent
a0f369aa3f
commit
a4e5de1b9d
15 changed files with 322 additions and 137 deletions
26
tests/text-hashed-output.sh
Normal file
26
tests/text-hashed-output.sh
Normal file
|
@ -0,0 +1,26 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
source common.sh
|
||||
|
||||
# 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
|
||||
|
||||
drv=$(nix-instantiate --experimental-features ca-derivations ./text-hashed-output.nix -A root)
|
||||
nix --experimental-features 'nix-command ca-derivations' show-derivation --derivation "$drv"
|
||||
|
||||
drvDep=$(nix-instantiate --experimental-features ca-derivations ./text-hashed-output.nix -A dependent)
|
||||
nix --experimental-features 'nix-command ca-derivations' show-derivation --derivation "$drvDep"
|
||||
|
||||
out1=$(nix-build --experimental-features ca-derivations ./text-hashed-output.nix -A dependent --no-out-link)
|
||||
|
||||
nix --experimental-features 'nix-command ca-derivations' path-info $drv --derivation --json | jq
|
||||
nix --experimental-features 'nix-command ca-derivations' path-info $out1 --derivation --json | jq
|
||||
|
||||
test $out1 == $drv
|
Loading…
Add table
Add a link
Reference in a new issue