[Nix-dev] haskell dev environment, ghc non-determinism and binary cache interaction

Miguel Negrão miguel.negrao-lists at friendlyvirus.org
Sun May 10 11:23:54 CEST 2015


Hi

I'm currently using nix on ubuntu, with cloned nixpks pinned at
b9489787297f6702ddd638d9f0bdceddea74ae7e. I would like to keep using this
commit for some time as everything that I need seems to work and I don't
want to destabilize my environment. It was my understanding that nix would
allow me to keep using a preferred nixpkgs commit indefinitely. 

I have an installed set of packages which work fine but I have an issue now
that I if try to install hsc3. It fails first because it seems the binary is
not in the binary cache server anymore, which seems to be a known bug:

https://github.com/NixOS/nix/issues/396

my config:

{
  packageOverrides = pkgs : rec {

  ihaskell-with-packages = pkgs.callPackage ./haskell/ng-wrapper.nix {
    inherit (pkgs.pythonPackages) ipython;
    inherit (haskellngPackages) ihaskell ghcWithPackages;
    packages = pkgs: with pkgs; [
         cabal-install hoogle turtle shelly shakespeare text
         attoparsec time network shell-escape hsyslog strict foldl
         comonad lens stylish-haskell 
         hsc3
   ]; 
  };

};

}


nix-env -I nixpkgs=~/Development/Haskell/nix/nixpkgs/ -iA
ihaskell-with-packages --option extra-binary-caches http://hydra.nixos.org
--option extra-binary-caches http://hydra.cryp.to -f '<nixpkgs>'

*** Downloading
‘http://hydra.cryp.to/nar/54gpgac4hayablp85w6hs7l8dk7gcz0y-hscolour-1.22’ to
‘/nix/store/54gpgac4hayablp85w6hs7l8dk7gcz0y-hscolour-1.22’...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--   
 0curl: (22) The requested URL returned error: 410 Gone

If I try to remove the binary cache flag, then hsc3 doens't build because
the ghc hashes and binary cache problem [1]. 

I have also tried uninstalling everything, garbage collecting and installing
again building from source (no binary cache flags), but some package would
refuse to build (haskell package she). At the moment that package is not
installed on my system so I suspect that it is a build dependency but not a
runtime dependency (does this make sense ?).  I wonder how the current
installed packages managed to build in the binary cache, but don't build on
my machine. I had to get /nix back from a backup after that.  

At the moment I don't want to update to ghc7.10, I prefer to keep using
7.8.4 as some packages I use are still not working in 7.10 (ghc-parser) 

It seem that if I want to stay in this commit I am stuck. Is there any way I
can get out of this situation ? 

thanks
Miguel

[1]
package binary-0.7.4.0 is broken due to missing package
array-0.5.0.0-470385a50d2b78598af85cfe9d988e1b,
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1,
bytestring-0.10.4.0-d6f1d17d717e8652498cab8269a0acd5,
containers-0.5.5.1-d4bd887fb97aa3a46cbadc13709b7653
package blaze-builder-0.3.3.4 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1,
bytestring-0.10.4.0-d6f1d17d717e8652498cab8269a0acd5
package data-binary-ieee754-0.4.4 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1
package data-default-0.5.3 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1
package data-default-instances-base-0.0.1 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1
package data-default-instances-containers-0.0.1 is broken due to missing
package base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1,
containers-0.5.5.1-d4bd887fb97aa3a46cbadc13709b7653
package data-default-instances-dlist-0.0.1 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1
package dlist-0.7.1.1 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1,
deepseq-1.3.0.2-63a1ab91b7017a28bb5d04cb1b5d2d02
package hashable-1.2.3.2 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1,
bytestring-0.10.4.0-d6f1d17d717e8652498cab8269a0acd5
package hosc-0.15 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1,
bytestring-0.10.4.0-d6f1d17d717e8652498cab8269a0acd5,
time-1.4.2-9b3076800c33f8382c38628f35717951
package network-2.6.0.2 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1,
bytestring-0.10.4.0-d6f1d17d717e8652498cab8269a0acd5,
unix-2.7.0.1-f8658ba9ec1c4fba8a371a8e0f42ec6c
package random-1.1 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1,
time-1.4.2-9b3076800c33f8382c38628f35717951
package split-0.2.2 is broken due to missing package
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1
package text-1.2.0.4 is broken due to missing package
array-0.5.0.0-470385a50d2b78598af85cfe9d988e1b,
base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1,
bytestring-0.10.4.0-d6f1d17d717e8652498cab8269a0acd5,


More information about the nix-dev mailing list