The builder creates a temporary package.conf.d database in $TMP that
contains everything required to build the current package (i.e. the
transitive closure of the package's propagated build inputs). These
files are no longer installed, however, we just install the package.conf
file for the package we're actually building. This means that
package.conf.d directory in $out won't have collisions anymore, which
simplifies the with-packages-wrapper.nix a bit.
For some reason this set a lot of native dependencies to null. I'll just
take the text-icu bump by itself for now.
@peti how am I meant to use hackage2nix?
This reverts commit d2566a190e.
Furthermore, export "name" and "version" attributes that match those of the
underlying compiler. These changes make a ghcWithPackages-generated wrapper
look exactly like a normal GHC derivation and it can be used anywhere in
Nixpkgs where a normal GHC would be used.
deepOverride turns out to be completely unfeasible for non-trivial overrides.
Nix evaluates for an eternity, and then comes back saying:
Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS
nix-instantiate killed by signal 6
The hand-written deep-override, on the other hand, performs the job in a
fraction of a second, no problem.
All bow to Russell O'Connor!