let # import niv packages sources = import ./nix/sources.nix; overlay = _: pkgs: { niv = import sources.niv {}; # use the sources :) }; pkgs1 = import sources.nixpkgs { overlays = [ overlay ]; config = {}; #import (builtins.fetchTarball https://github.com/input-output-hk/haskell.nix/archive/master.tar.gz) }; # Import the Haskell.nix library, pkgs2 = import (import (builtins.fetchTarball https://github.com/input-output-hk/haskell.nix/archive/master.tar.gz)) ; pkgs = pkgs1 // pkgs2; cabal-doctest = (hackage: { cabal-doctest = hackage.cabal-doctest."1.0.8".revisions.default; }); gtk2hs-buildtools = (hackage: { gtk2hs-buildtools = hackage.gtk2hs-buildtools."0.13.8.0".revisions.default; }); hashtables = (hackage: { hashtables = hackage.hashtables."1.2.3.4".revisions.default; }); alex = (hackage: { alex = hackage.alex."3.2.5".revisions.default; }); happy = (hackage: { happy = hackage.happy."1.19.12".revisions.default; }); # Import the file you will create in the stack-to-nix or cabal-to-nix step. my-pkgs = import ./pkgs.nix; # Cabal projects use this: pkgSet = pkgs.haskell-nix.mkCabalProjectPkgSet { plan-pkgs = my-pkgs; pkg-def-extras = [ cabal-doctest gtk2hs-buildtools hashtables alex happy ]; modules = [ { enableExecutableProfiling = true; enableLibraryProfiling = true; } # specific package overrides would go here # example: # packages.cbors.package.ghcOptions = "-Werror"; # packages.cbors.patches = [ ./one.patch ]; # packages.cbors.flags.optimize-gmp = false; # It may be better to set flags in `cabal.project` instead # (`plan-to-nix` will include them as defaults). ]; }; in pkgSet.config.hsPkgs // { _config = pkgSet.config; }