final: prev: let inherit (prev.lib) mapAttrs' removeSuffix ; mkGeneralOverlay = dir: self: super: mapAttrs' (name: _: { value = self.callPackage (dir + "/${name}") { }; name = removeSuffix ".nix" name; }) (builtins.readDir dir); in mkGeneralOverlay ./pkgs final prev // { formats = prev.formats // { xml = import ./xml.nix { pkgs = final; }; }; pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ (mkGeneralOverlay ./python-pkgs) ]; # ocamlPackagesExtensions is from a custom patch ocamlPackagesExtensions = (prev.ocamlPackagesExtensions or [ ]) ++ [ (mkGeneralOverlay ./ocaml-pkgs) ]; }