From babf4f9327d0fed073fcea11543c3a6113b7c241 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sat, 1 Jul 2023 13:57:38 +0200 Subject: 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. --- .../haskell-modules/configuration-ghc-8.10.x.nix | 9 +++++++-- .../haskell-modules/configuration-ghc-8.8.x.nix | 8 +++++++- .../haskell-modules/configuration-ghc-9.0.x.nix | 17 ++++++++--------- .../haskell-modules/configuration-ghc-9.2.x.nix | 4 ++++ pkgs/top-level/release-haskell.nix | 2 ++ 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 761fb3d7850d..3735ea5f26aa 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 50590ee1867e..e7cb3f23d2df 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 f32d12869b70..ede9cdcba44e 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 86662e990ba3..9ee544d3f790 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 034dab4c2eb0..88dde9fa2885 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 -- cgit 1.4.1