[Nix-dev] Haskell packages in the binary cache broken?

Karn Kallio tierpluspluslists at skami.org
Fri May 24 02:32:17 CEST 2013


Hi Jan,

We observe that both you and Hydra have identical Nix hashes for plain GHC 
(82lkfs5c4l41p244apv7q5dmd91h712d)

while the GHC ABI hashes for the packages included with GHC are different.

For example, your local GHC has
containers-0.4.2.1-d1e14469ebf5b1013df63e37678f8fc7
yet from http://hydra.nixos.org/build/4485890/contents/1  Hydra has
containers-0.4.2.1-75f143aa39a3e77a1ce2300025bdd8ce

Others are also different (Cabal, bin-package-db) while some are identical 
(array, base).

This accounts for the failures when mixing packages built locally with the 
binary cache.  Hydra for example will produce builds depending on a containers 
you do not have locally.

I think you must have built your GHC locallly, and some impurity in the build 
process gave different GHC ABI hashes on some of the GHC packages.  I think 
the most likely candidate for that impurity is the nondeterminism in GHC 
itself.  In that case, I think there is no solution to avoid this within Nix 
other than never building GHC locally and always obtaining it from the binary 
cache.

You can most likely fix the situation by removing your locally built GHC and 
replacing it from the binary cache.




More information about the nix-dev mailing list