···48484949- The GHCJS 8.10.7, exposed via `haskell.compiler.ghcjs` and `haskell.compiler.ghcjs810`, has been removed. Downstream users should migrate their projects to the new JavaScript backend of GHC proper which can be used via `pkgsCross.ghcjs` from Nixpkgs.
50505151+- The `ghcInfo` and `controlPhases` functions have been removed from `haskell.lib.compose` and `haskell.lib`. They were unused and would return incorrect results.
5252+5353+ - Instead of using `controlPhases`, the `doCheck` attribute of derivations can be accessed which is more accurate. `doBenchmark` can't be introspected at the moment.
5454+ - To detect cross compilation, the relevant platforms exposed by `stdenv` should be compared instead of using `ghcInfo`.
5555+ - Nixpkgs no longer packages any `ghcjs` compiler.
5656+ - To find a suitable `nativeGhc`, `buildHaskellPackages` should be used. `ghcInfo` would use `ghc.bootPkgs.ghc` if cross compiling,
5757+ and the given `ghc` otherwise. This approach is not recommended since it results in mismatched GHC versions.
5858+5159- `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67).
52605361- `stdenv.mkDerivation` and other derivation builders that use it no longer allow the value of `env` to be anything but an attribute set, for the purpose of setting environment variables that are available to the [builder](https://nix.dev/manual/nix/latest/store/derivation/#builder) process. An environment variable called `env` can still be provided by means of `mkDerivation { env.env = ...; }`, though we recommend to use a more specific name than "env".
-30
pkgs/development/haskell-modules/lib/compose.nix
···572572 # nix-shell evaluation, return a nix-shell optimized environment.
573573 shellAware = p: if lib.inNixShell then p.env else p;
574574575575- ghcInfo = ghc: rec {
576576- isCross = (ghc.cross or null) != null;
577577- isGhcjs = ghc.isGhcjs or false;
578578- nativeGhc = if isCross || isGhcjs then ghc.bootPkgs.ghc else ghc;
579579- };
580580-581581- ### mkDerivation helpers
582582- # These allow external users of a haskell package to extract
583583- # information about how it is built in the same way that the
584584- # generic haskell builder does, by reusing the same functions.
585585- # Each function here has the same interface as mkDerivation and thus
586586- # can be called for a given package simply by overriding the
587587- # mkDerivation argument it used. See getHaskellBuildInputs above for
588588- # an example of this.
589589-590590- # Some information about which phases should be run.
591591- controlPhases =
592592- ghc:
593593- let
594594- inherit (ghcInfo ghc) isCross;
595595- in
596596- {
597597- doCheck ? !isCross,
598598- doBenchmark ? false,
599599- ...
600600- }:
601601- {
602602- inherit doCheck doBenchmark;
603603- };
604604-605575 # Utility to convert a directory full of `cabal2nix`-generated files into a
606576 # package override set
607577 #
-14
pkgs/development/haskell-modules/lib/default.nix
···333333 # nix-shell evaluation, return a nix-shell optimized environment.
334334 shellAware = compose.shellAware;
335335336336- ghcInfo = compose.ghcInfo;
337337-338338- ### mkDerivation helpers
339339- # These allow external users of a haskell package to extract
340340- # information about how it is built in the same way that the
341341- # generic haskell builder does, by reusing the same functions.
342342- # Each function here has the same interface as mkDerivation and thus
343343- # can be called for a given package simply by overriding the
344344- # mkDerivation argument it used. See getHaskellBuildInputs above for
345345- # an example of this.
346346-347347- # Some information about which phases should be run.
348348- controlPhases = compose.controlPhases;
349349-350336 # Utility to convert a directory full of `cabal2nix`-generated files into a
351337 # package override set
352338 #