summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/configuration-ghcjs.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/haskell-modules/configuration-ghcjs.nix')
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix8
1 files changed, 8 insertions, 0 deletions
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index 4ed6d8a957f..d6d7277cc9d 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -53,6 +53,14 @@ self: super:
   terminfo = self.terminfo_0_4_0_2;
   xhtml = self.xhtml_3000_2_1;
 
+  # Cabal isn't part of the stage1 packages which form the default package-db
+  # that GHCJS provides.
+  # Almost all packages require Cabal to build their Setup.hs,
+  # but usually they don't declare it explicitly as they don't need to for normal GHC.
+  # To account for that we add Cabal by default.
+  mkDerivation = args:
+    if args.pname == "Cabal" then super.mkDerivation args else super.mkDerivation (args //
+      { setupHaskellDepends = (args.setupHaskellDepends or []) ++ [ self.Cabal ]; });
 
 ## OTHER PACKAGES