[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