Consider the following expression:
let
overlay = self: super: {
hello = super.hello.overrideAttrs (_: { postInstall = "${super.bash}/bin/bash --version"; });
};
pkgs = import <nixpkgs> { overlays = [ overlay ]; };
in pkgs.hello
When I build this, super.bash
is built from source. If I use self.bash
instead (in postInstall
), I get a different output for Bash (which is cached). The Bash versions are the same. Since I’m not explicitly changing any build inputs for Bash, what makes these differ?
This does not appear to be the case generally. For instance, it does not happen with zsh
.
I realize that there’s no good reason to use super.bash
here, just trying to get a better grasp on overlays.