From a784ba6f5ed2ed1f4dc6f2290ab4e2e8f5934d98 Mon Sep 17 00:00:00 2001
From: Daniel Firth <dan.firth@homotopic.tech>
Date: Mon, 17 Apr 2023 19:49:43 +0000
Subject: [PATCH] addSetupDepends Cabal 3.8

---
 flake.nix | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/flake.nix b/flake.nix
index d12521c..7800e5d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -39,16 +39,25 @@
         (import ./configuration.nix { inherit pkgs pkgs-libR; })
       ];
 
-      legacyPackages = horizon-platform.legacyPackages.${system}.extend overrides;
+      legacyPackages' = horizon-platform.legacyPackages.${system}.extend overrides;
 
-      packages = filterAttrs
-        (n: v: v != null
-          && builtins.typeOf v == "set"
-          && pkgs.lib.hasAttr "type" v
-          && v.type == "derivation"
-          && v.meta.broken == false)
-        legacyPackages;
+      isDerivation =
+        x: x != null
+          && builtins.typeOf x == "set"
+          && pkgs.lib.hasAttr "type" x
+          && x.type == "derivation";
 
+      isHaskellLibrary =
+        x: isDerivation x
+          && pkgs.lib.hasAttr "isHaskellLibrary" x
+          && x.isHaskellLibrary == true;
+
+      mapHaskellLibraries = f: builtins.mapAttrs (n: v: if isHaskellLibrary v then f n v else v);
+      addCabalSetupDepends = _: v: pkgs.haskell.lib.addSetupDepend v pkgs.haskell.packages.ghc8107.Cabal_3_8_1_0;
+
+      legacyPackages = mapHaskellLibraries addCabalSetupDepends legacyPackages';
+
+      packages = filterAttrs (_: isDerivation) legacyPackages';
     in
     {
 
-- 
GitLab