summary refs log tree commit diff
path: root/pkgs/development/compilers/ghcjs
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2022-04-11 01:26:04 +0200
committersternenseemann <sternenseemann@systemli.org>2022-04-11 01:26:04 +0200
commitfde2e98a0116ddba74569d11f281cd87fbdf13ab (patch)
tree163be4ceaa2ccf4b69128961c0af27089cbc71b9 /pkgs/development/compilers/ghcjs
parent7ae9629cedec5270f5ab42fb08b2f44321602a9b (diff)
downloadnixpkgs-fde2e98a0116ddba74569d11f281cd87fbdf13ab.tar
nixpkgs-fde2e98a0116ddba74569d11f281cd87fbdf13ab.tar.gz
nixpkgs-fde2e98a0116ddba74569d11f281cd87fbdf13ab.tar.bz2
nixpkgs-fde2e98a0116ddba74569d11f281cd87fbdf13ab.tar.lz
nixpkgs-fde2e98a0116ddba74569d11f281cd87fbdf13ab.tar.xz
nixpkgs-fde2e98a0116ddba74569d11f281cd87fbdf13ab.tar.zst
nixpkgs-fde2e98a0116ddba74569d11f281cd87fbdf13ab.zip
haskell.compiler.ghcjs: fix build with aeson 2.0
Diffstat (limited to 'pkgs/development/compilers/ghcjs')
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/common-overrides.nix35
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/default.nix3
2 files changed, 34 insertions, 4 deletions
diff --git a/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix b/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix
index a83795635b9..e1671d01ffe 100644
--- a/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix
+++ b/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix
@@ -1,8 +1,37 @@
-{ haskellLib }:
+{ haskellLib, fetchpatch, buildPackages }:
 
-let inherit (haskellLib) addBuildTools appendConfigureFlag dontHaddock doJailbreak;
+let inherit (haskellLib) addBuildTools appendConfigureFlag dontHaddock doJailbreak markUnbroken overrideCabal;
 in self: super: {
-  ghcjs = doJailbreak (super.ghcjs.overrideScope (self: super: {
+  ghcjs = overrideCabal (drv: {
+    # Jailbreak and patch can be dropped after https://github.com/ghcjs/ghcjs/pull/833
+    jailbreak = true;
+    patches = drv.patches or [] ++ [
+      (fetchpatch {
+        name = "ghcjs-aeson-2.0.patch";
+        url = "https://github.com/ghcjs/ghcjs/commit/9ef1f92d740e8503d15d91699f57db147f0474cc.patch";
+        sha256 = "0cgxcy6b5870bv4kj54n3bzcqinh4gl4w4r78dg43h2mblhkzbnj";
+      })
+    ];
+  }) (super.ghcjs.overrideScope (self: super: {
     optparse-applicative = self.optparse-applicative_0_15_1_0;
+    webdriver = overrideCabal (drv: {
+      patches = drv.patches or [] ++ [
+        # Patch for aeson 2.0 which adds a lower bound on it, so we don't apply it globally
+        # Pending https://github.com/kallisti-dev/hs-webdriver/pull/183
+        (fetchpatch {
+          name = "webdriver-aeson-2.0.patch";
+          url = "https://github.com/georgefst/hs-webdriver/commit/90ded63218da17fc0bd9f9b208b0b3f60b135757.patch";
+          sha256 = "1xvkk51r2v020xlmci5n1fd1na8raa332lrj7r9f0ijsyfvnqlv0";
+          excludes = [ "webdriver.cabal" ];
+        })
+      ];
+      # Fix line endings so patch applies
+      prePatch = drv.prePatch or "" + ''
+        find . -name '*.hs' | xargs "${buildPackages.dos2unix}/bin/dos2unix"
+      '';
+
+      jailbreak = true;
+      broken = false;
+    }) super.webdriver;
   }));
 }
diff --git a/pkgs/development/compilers/ghcjs/8.10/default.nix b/pkgs/development/compilers/ghcjs/8.10/default.nix
index 2fbf7ded9c4..78d757efee3 100644
--- a/pkgs/development/compilers/ghcjs/8.10/default.nix
+++ b/pkgs/development/compilers/ghcjs/8.10/default.nix
@@ -2,6 +2,7 @@
 , pkgsHostHost
 , callPackage
 , fetchgit
+, fetchpatch
 , ghcjsSrcJson ? null
 , ghcjsSrc ? fetchgit (lib.importJSON ghcjsSrcJson)
 , bootPkgs
@@ -36,7 +37,7 @@ let
       })
 
       (callPackage ./common-overrides.nix {
-        inherit haskellLib;
+        inherit haskellLib fetchpatch buildPackages;
       })
       ghcjsDepOverrides
     ]);