Let me know if this is the wrong channel, would Help be more appropriate?
It seems like between nix 2.10 and 2.19, the hash of the path created by
builtins.path has changed, but only if
path= the output of an ordinary drv. E.g.:
name = "name";
path = "/nix/store/bcwyhqvik6jhcklib33v6kykdl4zp9d4-bash-5.1-p8/bin/bash";
On 2.10.3 I get
/nix/store/59khc904ibx2wbb0nl8yx8cacwi2jkq4-name, on 2.19.3 I get
/nix/store/nj8cpsr0hz8pfl45y2jg4mzyk48h17cw-name. It doesn’t seem to happen for non-store paths, and doesn’t seem to happen for paths created via
./file refs (inherently trusted? I forget what the internal name is for those), it seems to be specific to ordinary IA drv outputs.
Is this known and expected? If so, I won’t bother to find out where exactly it happened. I didn’t see anything in release notes about hash changes, but I don’t know if there’s any obligation to document them. I’m sure devs try to avoid them but maybe
builtins.path is considered a dangerous internal function to use at your own risk?
It’s not a serious problem, just a bit alarming because it makes me worry what else has changed about hashes.