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 0846a6976b62..3a986e3daeeb 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix @@ -61,6 +61,9 @@ self: super: { # their existence to callPackages, but their is no shim for lower GHC versions. system-cxx-std-lib = null; + # Becomes a core package in GHC >= 9.8 + semaphore-compat = doDistribute self.semaphore-compat_1_0_0; + # For GHC < 9.4, some packages need data-array-byte as an extra dependency # For GHC < 9.2, os-string is not required. primitive = addBuildDepends [ self.data-array-byte ] super.primitive; diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix index 8d0f1fabb151..560a14d6d9dd 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix @@ -58,6 +58,9 @@ self: super: { # their existence to callPackages, but their is no shim for lower GHC versions. system-cxx-std-lib = null; + # Becomes a core package in GHC >= 9.8 + semaphore-compat = doDistribute self.semaphore-compat_1_0_0; + # Needs Cabal 3.0.x. jailbreak-cabal = super.jailbreak-cabal.overrideScope (cself: _: { Cabal = cself.Cabal_3_2_1_0; }); 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 eb11eaf2a992..0cf930918f83 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix @@ -60,6 +60,9 @@ self: super: { # their existence to callPackages, but their is no shim for lower GHC versions. system-cxx-std-lib = null; + # Becomes a core package in GHC >= 9.8 + semaphore-compat = doDistribute self.semaphore-compat_1_0_0; + # Jailbreaks & Version Updates # For GHC < 9.4, some packages need data-array-byte as an extra dependency 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 e3e9109418c5..beac507bf42f 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix @@ -60,6 +60,9 @@ self: super: { # their existence to callPackages, but their is no shim for lower GHC versions. system-cxx-std-lib = null; + # Becomes a core package in GHC >= 9.8 + semaphore-compat = doDistribute self.semaphore-compat_1_0_0; + # weeder >= 2.5 requires GHC 9.4 weeder = doDistribute self.weeder_2_4_1; # Allow dhall 1.42.* diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix index 204ae814f02a..94e3485fd8ea 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix @@ -63,6 +63,9 @@ in # still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463 xhtml = if self.ghc.hasHaddock or true then null else doDistribute self.xhtml_3000_4_0_0; + # Becomes a core package in GHC >= 9.8 + semaphore-compat = doDistribute self.semaphore-compat_1_0_0; + # Jailbreaks & Version Updates hashable-time = doJailbreak super.hashable-time; diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix index 694b21a5e482..d8325db75785 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix @@ -69,6 +69,9 @@ self: super: unix = null; xhtml = null; + # Becomes a core package in GHC >= 9.8 + semaphore-compat = doDistribute self.semaphore-compat_1_0_0; + # # Version deviations from Stackage LTS # diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 9b32c403ca41..4c44d6624fd3 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -603,6 +603,15 @@ let ] released; hashable = released; primitive = released; + semaphore-compat = [ + # Compiler < 9.8 don't have the semaphore-compat core package + compilerNames.ghc865Binary + compilerNames.ghc8107 + compilerNames.ghc902 + compilerNames.ghc928 + compilerNames.ghc948 + compilerNames.ghc966 + ]; weeder = lib.subtractLists [ compilerNames.ghc9101 compilerNames.ghc9121