diff --git a/pkgs/overlays/unstable-from-source.nix b/pkgs/overlays/unstable-from-source.nix index cd2ac95..4b40bcb 100644 --- a/pkgs/overlays/unstable-from-source.nix +++ b/pkgs/overlays/unstable-from-source.nix @@ -17,6 +17,13 @@ let "parsed" ]; + # if overlay is found in previous layer, then it was provided in "overlays" argument + # otherwise, it is provided in "crossOverlays" argument. + overlays = self.lib.groupBy (overlay: + if self.lib.elem overlay self.buildPackages.overlays then "allLayers" + else "finalLayer" + ) self.overlays; + unstablePkgs = import unstableSource { # localSystem -> pkgs.stdenv.buildPlatform localSystem = sanitizePlatform self.stdenv.buildPlatform; @@ -24,11 +31,10 @@ let # passing below # config -> pkgs.config config = self.config; - # overlays -> partial of pkgs.overlays - overlays = self.overlays; - # crossOverlays -> partial of pkgs.overlays - # crossOverlays are merged to overlays, not sure what issues that might raise. - # ignoring. + # overlays -> pkgs.buildPackages.overlays + overlays = overlays.allLayers; + # crossOverlays -> pkgs.overlays without pkgs.buildPackages.overlays + crossOverlays = overlays.finalLayer; } // self.lib.optionalAttrs ( self.lib.systems.equals self.stdenv.buildPlatform self.stdenv.hostPlatform ) {