on iko/ghcjs-patch-master help sign in
Revert "Drop def-pkg-overlay"

We still needthis, as the module system is not very well suited for package overrides. This reverts commit 28a9c6f3528daa57d506d134e137fb617a947985.

commit5f56d93147ab0ff0c9798ca760569038fa632b18 authorMoritz Angermann <moritz.angermann@gmail.com> dateThu 29 Nov 2018, 15:35 (8 years ago) parent26c8723
2 files changed+16−4
default.nix+3−1 new-package-set.nix+13−3
default.nix+3−1
@@ -18,5 +18,7 @@ hackage: let haskell = {
1818 # The *new* pkg set is one that build components.
1919 # This also uses the module system for much greater extensibility.
2020 # To make extend and override things, pass a modules argument to new-package-set.nix
21− mkNewPkgSet = { pkgs, pkg-def, modules ? [] }@args: import ./new-package-set.nix (args // { inherit hackage; pkg-def = strip-pkg-def pkgs pkg-def; });
21+ mkNewPkgSet
22+ = { pkgs, pkg-def, pkg-def-overlays ? [], modules ? [] }@args:
23+ import ./new-package-set.nix (args // { inherit hackage; pkg-def = strip-pkg-def pkgs pkg-def; });
2224}; in haskell
new-package-set.nix+13−3
@@ -1,5 +1,5 @@
1−let f = { hackage, pkgs, pkg-def, modules ? [] }: let
2− buildModules = f { inherit hackage pkg-def modules; pkgs = pkgs.buildPackages; };
1+let f = { hackage, pkgs, pkg-def, pkg-def-overlays ? [], modules ? [] }: let
2+ buildModules = f { inherit hackage pkg-def pkg-def-overlays modules; pkgs = pkgs.buildPackages; };
33in pkgs.lib.evalModules {
44 modules = modules ++ [
55 ({ lib, ... }: {
@@ -22,7 +22,17 @@ in pkgs.lib.evalModules {
2222 hackage.db = hackage;
2323
2424 # Set the plan for modules/plan.nix
25− plan.pkg-def = pkg-def;
25+ plan.pkg-def = hackage: with builtins;
26+ # fold any potential `pkg-def-overlays`
27+ # onto the `pkg-def`.
28+ #
29+ # This means you can have a base definition (e.g. stackage)
30+ # and augment it with custom packages to your liking.
31+ foldl' lib.recursiveUpdate
32+ (pkg-def hackage)
33+ (map (p: p hackage) pkg-def-overlays)
34+ ;
35+
2636 })
2737
2838 # Supplies metadata