summary refs log tree commit diff
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2023-07-01 13:57:38 +0200
committersternenseemann <sternenseemann@systemli.org>2023-07-01 13:57:38 +0200
commitbabf4f9327d0fed073fcea11543c3a6113b7c241 (patch)
tree16fe773946c53ae7db9348e21f37620571b41843
parent4c2f247e11fb36c7b4c8603e9fc8f3f195d10fe2 (diff)
downloadnixpkgs-babf4f9327d0fed073fcea11543c3a6113b7c241.tar
nixpkgs-babf4f9327d0fed073fcea11543c3a6113b7c241.tar.gz
nixpkgs-babf4f9327d0fed073fcea11543c3a6113b7c241.tar.bz2
nixpkgs-babf4f9327d0fed073fcea11543c3a6113b7c241.tar.lz
nixpkgs-babf4f9327d0fed073fcea11543c3a6113b7c241.tar.xz
nixpkgs-babf4f9327d0fed073fcea11543c3a6113b7c241.tar.zst
nixpkgs-babf4f9327d0fed073fcea11543c3a6113b7c241.zip
haskell.packages.*.hashable: provide data-array-byte for GHC < 9.4
This dependency is no longer necessary for GHC >= 9.4, but we need to
make it available for GHC < 9.4.
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix9
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix8
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix17
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix4
-rw-r--r--pkgs/top-level/release-haskell.nix2
5 files changed, 28 insertions, 12 deletions
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 761fb3d7850..3735ea5f26a 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -54,6 +54,13 @@ self: super: {
   # Additionally depends on OneTuple for GHC < 9.0
   base-compat-batteries = addBuildDepend self.OneTuple super.base-compat-batteries;
 
+  # For GHC < 9.4, some packages need data-array-byte as an extra dependency
+  primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
+  hashable = addBuildDepends [
+    self.data-array-byte
+    self.base-orphans
+  ] super.hashable;
+
   # Pick right versions for GHC-specific packages
   ghc-api-compat = doDistribute (unmarkBroken self.ghc-api-compat_8_10_7);
 
@@ -140,8 +147,6 @@ self: super: {
     ghc-prim = self.hashable;
   };
 
-  hashable = addBuildDepend self.base-orphans super.hashable;
-
   # Doesn't build with 9.0, see https://github.com/yi-editor/yi/issues/1125
   yi-core = doDistribute (markUnbroken super.yi-core);
 
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index 50590ee1867..e7cb3f23d2d 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -60,6 +60,13 @@ self: super: {
   # Additionally depends on OneTuple for GHC < 9.0
   base-compat-batteries = addBuildDepend self.OneTuple super.base-compat-batteries;
 
+  # For GHC < 9.4, some packages need data-array-byte as an extra dependency
+  primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
+  hashable = addBuildDepends [
+    self.data-array-byte
+    self.base-orphans
+  ] super.hashable;
+
   # Ignore overly restrictive upper version bounds.
   aeson-diff = doJailbreak super.aeson-diff;
   async = doJailbreak super.async;
@@ -67,7 +74,6 @@ self: super: {
   chell = doJailbreak super.chell;
   Diff = dontCheck super.Diff;
   doctest = doJailbreak super.doctest;
-  hashable = addBuildDepend self.base-orphans super.hashable;
   hashable-time = doJailbreak super.hashable-time;
   hledger-lib = doJailbreak super.hledger-lib;  # base >=4.8 && <4.13, easytest >=0.2.1 && <0.3
   integer-logarithms = doJailbreak super.integer-logarithms;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
index f32d12869b7..ede9cdcba44 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -63,20 +63,19 @@ self: super: {
   dec = doJailbreak super.dec;
   ed25519 = doJailbreak super.ed25519;
   hackage-security = doJailbreak super.hackage-security;
-  hashable =
-    pkgs.lib.pipe
-      super.hashable
-      [ (overrideCabal (drv: { postPatch = "sed -i -e 's,integer-gmp .*<1.1,integer-gmp < 2,' hashable.cabal"; }))
-        doJailbreak
-        dontCheck
-        (addBuildDepend self.base-orphans)
-      ];
+
+  # For GHC < 9.4, some packages need data-array-byte as an extra dependency
+  primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
+  hashable = addBuildDepends [
+    self.data-array-byte
+    self.base-orphans
+  ] super.hashable;
+
   hashable-time = doJailbreak super.hashable-time;
   HTTP = overrideCabal (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; }) (doJailbreak super.HTTP);
   integer-logarithms = overrideCabal (drv: { postPatch = "sed -i -e 's,integer-gmp <1.1,integer-gmp < 2,' integer-logarithms.cabal"; }) (doJailbreak super.integer-logarithms);
   lukko = doJailbreak super.lukko;
   parallel = doJailbreak super.parallel;
-  primitive = doJailbreak (dontCheck super.primitive);
   regex-posix = doJailbreak super.regex-posix;
   resolv = doJailbreak super.resolv;
   singleton-bool = doJailbreak super.singleton-bool;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
index 86662e990ba..9ee544d3f79 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
@@ -55,6 +55,10 @@ self: super: {
   # weeder == 2.5.* requires GHC 9.4
   weeder = doDistribute self.weeder_2_4_1;
 
+  # For GHC < 9.4, some packages need data-array-byte as an extra dependency
+  hashable = addBuildDepends [ self.data-array-byte ] super.hashable;
+  primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
+
   # Jailbreaks & Version Updates
   hashable-time = doJailbreak super.hashable-time;
 
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index 034dab4c2eb..88dde9fa288 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -533,6 +533,8 @@ let
         compilerNames.ghc928
         compilerNames.ghc945
       ];
+      hashable = released;
+      primitive = released;
       weeder = [
         compilerNames.ghc8107
         compilerNames.ghc902