{ nixpkgs ? , pkgs ? (import nixpkgs {}), lib ? pkgs.lib }: args: let modulesPath = builtins.toString ../modules; in # FIXME: we could replace the `lib` by a lib-only minimal nixpkgs. (import "${nixpkgs}/lib/modules.nix" { inherit lib; }).evalModules (args // { specialArgs = (args.specialArgs or {}) // { inherit modulesPath; }; modules = (args.modules or []) ++ [ "${modulesPath}/hardware.nix" "${modulesPath}/base.nix" "${modulesPath}/busybox.nix" "${modulesPath}/iproute2.nix" "${modulesPath}/hostname.nix" "${modulesPath}/kernel" "${modulesPath}/s6" "${modulesPath}/users.nix" "${modulesPath}/outputs.nix" "${modulesPath}/nixpkgs.nix" "${modulesPath}/misc/assertions.nix" # FIXME: we should let the caller inject `pkgs` and `lim` ideally... ]; })