From f50da30a5ddca84b5f4dc87490ba6330d3dd0ff2 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sat, 1 Jul 2023 19:31:29 +0200 Subject: [PATCH] haskell.packages.*.system-cxx-std-lib: make sure attr always exists GHC 9.4 introduced a virtual package for linking against the C++ standard library. Since some packages depend on it when configured with GHC 9.4 (as hackage2nix does), we need to make sure the attribute exists or some packages will fail to evaluate. The may still build, even though there is no shim for lower GHC versions (as far as I know). --- pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix | 3 +++ pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix | 3 +++ pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix | 3 +++ pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix | 3 +++ 4 files changed, 12 insertions(+) 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 3735ea5f26aa..449790a6091f 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix @@ -50,6 +50,9 @@ self: super: { # Need the Cabal-syntax-3.6.0.0 fake package for Cabal < 3.8 to allow callPackage and the constraint solver to work Cabal-syntax = self.Cabal-syntax_3_6_0_0; + # These core package only exist for GHC >= 9.4. The best we can do is feign + # their existence to callPackages, but their is no shim for lower GHC versions. + system-cxx-std-lib = null; # Additionally depends on OneTuple for GHC < 9.0 base-compat-batteries = addBuildDepend self.OneTuple super.base-compat-batteries; 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 e7cb3f23d2df..756b66237e62 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix @@ -46,6 +46,9 @@ self: super: { # GHC only bundles the xhtml library if haddock is enabled, check if this is # 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 self.xhtml_3000_2_2_1; + # These core package only exist for GHC >= 9.4. The best we can do is feign + # their existence to callPackages, but their is no shim for lower GHC versions. + system-cxx-std-lib = null; # Need the Cabal-syntax-3.6.0.0 fake package for Cabal < 3.8 to allow callPackage and the constraint solver to work Cabal-syntax = self.Cabal-syntax_3_6_0_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 ede9cdcba44e..4b8252738ef9 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix @@ -51,6 +51,9 @@ self: super: { # Need the Cabal-syntax-3.6.0.0 fake package for Cabal < 3.8 to allow callPackage and the constraint solver to work Cabal-syntax = self.Cabal-syntax_3_6_0_0; + # These core package only exist for GHC >= 9.4. The best we can do is feign + # their existence to callPackages, but their is no shim for lower GHC versions. + system-cxx-std-lib = null; # Jailbreaks & Version Updates 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 9ee544d3f790..38c5f16b8eb4 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix @@ -51,6 +51,9 @@ self: super: { # Need the Cabal-syntax-3.6.0.0 fake package for Cabal < 3.8 to allow callPackage and the constraint solver to work Cabal-syntax = self.Cabal-syntax_3_6_0_0; + # These core package only exist for GHC >= 9.4. The best we can do is feign + # their existence to callPackages, but their is no shim for lower GHC versions. + system-cxx-std-lib = null; # weeder == 2.5.* requires GHC 9.4 weeder = doDistribute self.weeder_2_4_1;