How to get a missing .drv file for a derivation from nixpkgs?

Hydra says, that /nix/store/53wi068kjrqfr2j0hzcxhbw2xaa990jr-bash-4.4-p23 was

Cached from: nixpkgs:cross-staging:avr.libcCross.x86_64-linux build 88317396

Looking into that build → Build Steps → Bash build details we see:

Below is the build log of derivation /nix/store/2amas84m6w99q8lazd9fww6zrkakv6f9-bash-4.4-p23.drv. It was built on root@hydra.ewi.tudelft.nl.

However, on original Details page we see:

Derivation store path: /nix/store/zvy7mbpxqlplqpflqn5xk9szx25s4mhg-bash-4.4-p23.drv

How I understand it: hydra instantiates derivation, computes it’s store-path, finds it in some previous build, reuses that binary cache together with old .drv information. When you fetch NAR, you fetch also old .drv information…

So, --deriver is pretty much flaky. I don’t know why nix-store --realise doesn’t see it. Probably Hydra has some cleanup script, which makes 1-to-1 mappings between store output and derivation?

1 Like