diff --git a/flake.nix b/flake.nix index d12521c7cf4d8bb10692255b37d76ae6fc2461c2..7800e5daf339b1f503180f320bfd2fcba56a2fc7 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 {