mirror of
https://github.com/simplex-chat/haskell.nix.git
synced 2026-06-03 09:17:32 +00:00
f056dd34cd
See https://github.com/input-output-hk/nix-tools/pull/101 We should look up hsPkgs.${pkg-name}.components.exe.${component-name} instead of including the package as a dependency. Adding `hsPkgs.${pkg-name}` a tool it is not clear which executable in the package `haskell.nix` should choose. Haskell.nix did not deal with this well and in fact it could lead to `nix-shell` crashing. For instance using `shellFor` to make a shell for building `haskell-language-server` with `cabal build` crashed as a dependency on `ghcide` the executable (by the `ghcide-bench` executable) caused infinite recursion. Allowing `ghcide-bench` to correctly depend just on `components.exes.ghcide` fixes this. This PR also includes: * Updated materialized files built with the new nix-tools and latest index-state * Small update to GHCJS (pins happy) to fix issue that showed up when the materialization was updated * A fix for the infinite recursion issue when updating materialized files (by adding ghc-boot-packages-unchecked). * Performance fix for shellFor (checks just the names of component derivations when filtering).
50 lines
2.6 KiB
Nix
50 lines
2.6 KiB
Nix
{ lib, config, ... }:
|
|
{
|
|
options.errorHandler = lib.mkOption {
|
|
type = lib.types.unspecified;
|
|
};
|
|
|
|
config.errorHandler = {
|
|
buildDepError = pkg:
|
|
builtins.throw ''
|
|
The Haskell package set does not contain the package: ${pkg} (build dependency).
|
|
If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
|
|
'';
|
|
sysDepError = pkg:
|
|
builtins.throw ''
|
|
The Nixpkgs package set does not contain the package: ${pkg} (system dependency).
|
|
You may need to augment the system package mapping in haskell.nix so that it can be found.
|
|
'';
|
|
pkgConfDepError = pkg:
|
|
builtins.throw ''
|
|
The pkg-conf packages does not contain the package: ${pkg} (pkg-conf dependency).
|
|
You may need to augment the pkg-conf package mapping in haskell.nix so that it can be found.
|
|
'';
|
|
exeDepError = pkg:
|
|
builtins.throw ''
|
|
The local executable components do not include the component: ${pkg} (executable dependency).
|
|
'';
|
|
legacyExeDepError = pkg:
|
|
builtins.throw ''
|
|
The Haskell package set does not contain the package: ${pkg} (executable dependency).
|
|
If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
|
|
'';
|
|
setupDepError = pkg:
|
|
builtins.throw ''
|
|
Neither the Haskell package set or the Nixpkgs package set contain the package: ${pkg} (setup dependency).
|
|
If this is a system dependency:
|
|
You may need to augment the system package mapping in haskell.nix so that it can be found.
|
|
If this is a Haskell dependency:
|
|
If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
|
|
'';
|
|
buildToolDepError = tool:
|
|
builtins.throw ''
|
|
Neither the Haskell package set or the Nixpkgs package set contain the tool: ${tool} (build tool dependency).
|
|
If this is a system dependency:
|
|
You may need to augment the system package mapping in haskell.nix so that it can be found.
|
|
If this is a Haskell dependency:
|
|
If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
|
|
'';
|
|
};
|
|
}
|