Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at flake-libs 71 lines 1.9 kB view raw
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 configurationJS ? import ./configuration-ghcjs-9.x.nix, 19}: 20 21let 22 23 inherit (lib) extends makeExtensible; 24 inherit (haskellLib) makePackageSet; 25 26 haskellPackages = pkgs.callPackage makePackageSet { 27 package-set = initialPackages; 28 inherit 29 stdenv 30 haskellLib 31 ghc 32 extensible-self 33 all-cabal-hashes 34 ; 35 36 # Prevent `pkgs/top-level/release-attrpaths-superset.nix` from recursing here. 37 buildHaskellPackages = buildHaskellPackages // { 38 __attrsFailEvaluation = true; 39 }; 40 }; 41 42 platformConfigurations = 43 lib.optionals stdenv.hostPlatform.isAarch [ 44 (configurationArm { inherit pkgs haskellLib; }) 45 ] 46 ++ lib.optionals stdenv.hostPlatform.isDarwin [ 47 (configurationDarwin { 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