summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/configuration-ghcjs.nix
diff options
context:
space:
mode:
authorCharles Strahan <charles.c.strahan@gmail.com>2016-02-17 22:07:32 -0500
committerCharles Strahan <charles.c.strahan@gmail.com>2016-02-18 03:15:59 -0500
commitbbce88302a98338f014e7978e128f438dec3cc2d (patch)
tree62c11184718051543c5b7fe915e7611eef221b0e /pkgs/development/haskell-modules/configuration-ghcjs.nix
parentde5a233a71213101ccb3e06bad6a33d088f9e7f9 (diff)
downloadnixpkgs-bbce88302a98338f014e7978e128f438dec3cc2d.tar
nixpkgs-bbce88302a98338f014e7978e128f438dec3cc2d.tar.gz
nixpkgs-bbce88302a98338f014e7978e128f438dec3cc2d.tar.bz2
nixpkgs-bbce88302a98338f014e7978e128f438dec3cc2d.tar.lz
nixpkgs-bbce88302a98338f014e7978e128f438dec3cc2d.tar.xz
nixpkgs-bbce88302a98338f014e7978e128f438dec3cc2d.tar.zst
nixpkgs-bbce88302a98338f014e7978e128f438dec3cc2d.zip
ghcjs: fix building with cabal-install-1.22.8.0
Diffstat (limited to 'pkgs/development/haskell-modules/configuration-ghcjs.nix')
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix44
1 files changed, 23 insertions, 21 deletions
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index dd51b99bf93..dfdad72cd3d 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -7,54 +7,56 @@ in
 
 with import ./lib.nix { inherit pkgs; };
 
-self: super: {
+self: super:
+  # The stage 2 packages. Regenerate with ./ghcjs/gen-stage2.rb
+  let stage2 =
+    (import ./ghcjs/stage2.nix {
+       inherit (self) callPackage;
+       inherit (self.ghc) ghcjsBoot;
+    }); in stage2 // {
+
+  old-time = overrideCabal stage2.old-time (drv: {
+    postPatch = ''
+      ${pkgs.autoconf}/bin/autoreconf --install --force --verbose
+    '';
+  });
+
+  mkDerivation = drv: super.mkDerivation (drv // {
+    # Need Cabal lib to be available.
+    libraryHaskellDepends = drv.libraryHaskellDepends
+      # Be careful not to end up in infinite recursion!
+      ++ pkgs.lib.optional (!(builtins.elem drv.pname ["Cabal" "hscolour"])) self.Cabal;
+  });
 
   # LLVM is not supported on this GHC; use the latest one.
   inherit (pkgs) llvmPackages;
 
   inherit (pkgs.haskell.packages.ghc7103) jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
 
-  # This is the list of packages that are built into a booted ghcjs installation
+  # This is the list of the Stage 1 packages that are built into a booted ghcjs installation
   # It can be generated with the command:
   # nix-shell -p haskell.packages.ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^    \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1 = null;/'"
-  Cabal = null;
-  aeson = null;
   array = null;
-  async = null;
-  attoparsec = null;
   base = null;
   binary = null;
   rts = null;
   bytestring = null;
-  case-insensitive = null;
   containers = null;
   deepseq = null;
   directory = null;
-  dlist = null;
-  extensible-exceptions = null;
   filepath = null;
   ghc-prim = null;
-  ghcjs-base = null;
   ghcjs-prim = null;
-  hashable = null;
   integer-gmp = null;
-  mtl = null;
   old-locale = null;
-  old-time = null;
-  parallel = null;
   pretty = null;
   primitive = null;
   process = null;
-  scientific = null;
-  stm = null;
-  syb = null;
   template-haskell = null;
-  text = null;
   time = null;
   transformers = null;
   unix = null;
-  unordered-containers = null;
-  vector = null;
+  integer-simple = null;
 
   # These packages are core libraries in GHC 7.10.x, but not here.
   bin-package-db = null;
@@ -105,7 +107,7 @@ self: super: {
      }) {};
 
   ghcjs-dom = overrideCabal super.ghcjs-dom (drv: {
-    libraryHaskellDepends =
+    libraryHaskellDepends = [ self.ghcjs-base ] ++
       removeLibraryHaskellDepends [
         "glib" "gtk" "gtk3" "webkitgtk" "webkitgtk3"
       ] drv.libraryHaskellDepends;