input-output-hk / haskell.nix

Alternative Haskell Infrastructure for Nixpkgs
https://input-output-hk.github.io/haskell.nix
Apache License 2.0
559 stars 238 forks source link

nix-shell of Plutus gets error evaluating 'buildPackages.haskell-nix.compiler."${(((plan-pkgs).pkgs hackage)).compiler.nix-name}".version' #1109

Closed stephane-rolland closed 3 years ago

stephane-rolland commented 3 years ago

I'm starting the IOHK Plutus Pioneer Program, and I get an error right from the start, when wanting to do the nix-shell of the IOHK Plutus repository, in sync with its commit 3746610e53654a1167aeb4c6294c6096d16b0502 as required by the course.

When running nix-shell --show-trace it seems at first sight that the error is provoked about something inside Haskell.Nix haskell.nix-src/overlays/haskell.nix:503:31

Here is the end of the verbose error log:

while evaluating the attribute 'buildPackages.haskell-nix.compiler."${(((plan-pkgs).pkgs hackage)).compiler.nix-name}".version' at /nix/store/qrbp0y6mfscqhfhzivnhc91hvby45nv7-nixpkgs-src/lib/attrsets.nix:344:7: while evaluating anonymous function at /nix/store/cf4ksa58yibwkmx2z83y7qd9zwpyjwmy-haskell.nix-src/lib/import-and-filter-project.nix:5:1, called from /nix/store/cf4ksa58yibwkmx2z83y7qd9zwpyjwmy-haskell.nix-src/overlays/haskell.nix:503:31: build of '/nix/store/42ml953fywhg2i2fi4mqkq64v4fy512d-Agda-plan-to-nix-pkgs.drv' failed

I'm running NixOS 20.03: I was thinking about builtins.trace and evaluating on my computer parts of the expression 'buildPackages.haskell-nix.compiler."${(((plan-pkgs).pkgs hackage)).compiler.nix-name}".version, but as Haskell.Nix is a library I had never used, I wonder first if it is not some sort of starting/starter/beginner common error

Looking at the IOHK discord thread /help-community, I see that I am really not the only one (I'd say there is a dozen maybe of other messages refering to a similar error with Agda-plan-to-nix-pkgs.drv) and none of them seem to have receive an answer on how to solve the issue.

So that would be really helpful if anyone had an idea how to help on this issue.

Any idea what might be wrong, or how I could help for debugging ?

I have tried removing my personnal official Haskell package and Haskell dependent packages like pandoc from my configuration.nix in case there could be any conflicts (just a reflex from my mutable OSes period) but of course it changed nothing :-)

stephane-rolland commented 3 years ago

Notice: the problem disappears when using the IOHK binary cache for nix.

michaelpj commented 3 years ago

There's a big warning about using the binary cache at the top of the plutus README: yes, you need to do that.

stephane-rolland commented 3 years ago

@michaelpj Many thanks. Understood. But I'm sure you would totally agree that using nix, for reproducible builds, made me take as granted that the build was reproducible :-)

Moreover, as I am learning nix, I would have LOVED, to understand the problem better. Each grain of salt that I can grasp makes my mental model clearer.

Explaining to me why 'buildPackages.haskell-nix.compiler."${(((plan-pkgs).pkgs hackage)).compiler.nix-name}".version' could not be evaluated in the Haskell.Nix derivation under some circumstances would have been extremely valuable for me.

Just a remark, nothing serious.