nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 pkgs,
3 stdenv,
4 lib,
5 haskellLib,
6 ghc,
7 all-cabal-hashes,
8 buildHaskellPackages,
9 compilerConfig ? (self: super: { }),
10 packageSetConfig ? (self: super: { }),
11 overrides ? (self: super: { }),
12 initialPackages ? import ./initial-packages.nix,
13 nonHackagePackages ? import ./non-hackage-packages.nix,
14 configurationCommon ? import ./configuration-common.nix,
15 configurationNix ? import ./configuration-nix.nix,
16 configurationArm ? import ./configuration-arm.nix,
17 configurationDarwin ? import ./configuration-darwin.nix,
18 configurationWindows ? import ./configuration-windows.nix,
19 configurationJS ? import ./configuration-ghcjs-9.x.nix,
20}:
21
22let
23
24 inherit (lib) extends makeExtensible;
25 inherit (haskellLib) makePackageSet;
26
27 haskellPackages = pkgs.callPackage makePackageSet {
28 package-set = initialPackages;
29 inherit
30 stdenv
31 haskellLib
32 ghc
33 extensible-self
34 all-cabal-hashes
35 buildHaskellPackages
36 ;
37 };
38
39 platformConfigurations =
40 lib.optionals stdenv.hostPlatform.isAarch [
41 (configurationArm { inherit pkgs haskellLib; })
42 ]
43 ++ lib.optionals stdenv.hostPlatform.isDarwin [
44 (configurationDarwin { inherit pkgs haskellLib; })
45 ]
46 ++ lib.optionals stdenv.hostPlatform.isWindows [
47 (configurationWindows { inherit pkgs haskellLib; })
48 ]
49 ++ lib.optionals stdenv.hostPlatform.isGhcjs [
50 (configurationJS { inherit pkgs haskellLib; })
51 ];
52
53 extensions = lib.composeManyExtensions (
54 [
55 (nonHackagePackages { inherit pkgs haskellLib; })
56 (configurationNix { inherit pkgs haskellLib; })
57 (configurationCommon { inherit pkgs haskellLib; })
58 ]
59 ++ platformConfigurations
60 ++ [
61 compilerConfig
62 packageSetConfig
63 overrides
64 ]
65 );
66
67 extensible-self = makeExtensible (extends extensions haskellPackages);
68
69in
70
71extensible-self