diff --git a/lib/devos/default.nix b/lib/devos/default.nix index a8ecd940..cd97181f 100644 --- a/lib/devos/default.nix +++ b/lib/devos/default.nix @@ -1,4 +1,4 @@ -{ lib }: +{ lib, utils }: { # pkgImport :: Nixpkgs -> Overlays -> System -> Pkgs pkgImport = nixpkgs: overlays: system: @@ -9,22 +9,22 @@ profileMap = map (profile: profile.default); - mkNodes = lib.callLibs ./mkNodes.nix; + mkNodes = import ./mkNodes.nix { inherit lib; }; - mkHosts = lib.callLibs ./mkHosts.nix; + mkHosts = import ./mkHosts.nix { inherit lib; }; - mkSuites = lib.callLibs ./mkSuites.nix; + mkSuites = import ./mkSuites.nix { inherit lib; }; - mkProfileAttrs = lib.callLibs ./mkProfileAttrs.nix; + mkProfileAttrs = import ./mkProfileAttrs.nix { inherit lib; }; - mkPkgs = lib.callLibs ./mkPkgs.nix; + mkPkgs = import ./mkPkgs.nix { inherit lib utils; }; - recImport = lib.callLibs ./recImport.nix; + recImport = import ./recImport.nix { inherit lib; }; - devosSystem = lib.callLibs ./devosSystem.nix; + devosSystem = import ./devosSystem.nix { inherit lib; }; - mkHomeConfigurations = lib.callLibs ./mkHomeConfigurations.nix; + mkHomeConfigurations = import ./mkHomeConfigurations.nix { inherit lib; }; - mkPackages = lib.callLibs ./mkPackages.nix; + mkPackages = import ./mkPackages.nix { inherit lib; }; } diff --git a/lib/devos/devosSystem.nix b/lib/devos/devosSystem.nix index 121638cb..f9a84d0f 100644 --- a/lib/devos/devosSystem.nix +++ b/lib/devos/devosSystem.nix @@ -1,4 +1,6 @@ -{ lib, nixpkgs, userFlakeSelf, userFlakeInputs, ... }: +{ lib }: + +{ userFlakeNixos, userFlakeSelf, userFlakeInputs }: { modules, ... } @ args: lib.nixosSystem (args // { @@ -13,7 +15,7 @@ lib.nixosSystem (args // { (args // { modules = moduleList ++ [ - "${nixpkgs}/${modpath}/installer/cd-dvd/installation-cd-minimal-new-kernel.nix" + "${userFlakeNixos}/${modpath}/installer/cd-dvd/installation-cd-minimal-new-kernel.nix" ({ config, suites, ... }: { diff --git a/lib/devos/mkHomeConfigurations.nix b/lib/devos/mkHomeConfigurations.nix index 34c5e938..6ccfa50a 100644 --- a/lib/devos/mkHomeConfigurations.nix +++ b/lib/devos/mkHomeConfigurations.nix @@ -1,4 +1,6 @@ -{ lib, userFlakeSelf, ... }: +{ lib }: + +{ userFlakeSelf }: with lib; let diff --git a/lib/devos/mkHosts.nix b/lib/devos/mkHosts.nix index b11bda95..3bb010bb 100644 --- a/lib/devos/mkHosts.nix +++ b/lib/devos/mkHosts.nix @@ -1,6 +1,6 @@ -{ lib, nixpkgs, userFlakeInputs, userFlakeSelf, ... }: +{ lib }: -{ dir, extern, suites, overrides, multiPkgs, ... }: +{ dir, extern, suites, overrides, multiPkgs, userFlakeNixOS, userFlakeInputs, userFlakeSelf }: let defaultSystem = "x86_64-linux"; @@ -36,7 +36,7 @@ let hardware.enableRedistributableFirmware = lib.mkDefault true; nix.nixPath = [ - "nixpkgs=${nixpkgs}" + "nixpkgs=${userFlakeNixOS}" "nixos-config=${userFlakeSelf}/compat/nixos" "home-manager=${userFlakeInputs.home}" ]; @@ -45,7 +45,7 @@ let nix.registry = { devos.flake = userFlakeSelf; - nixos.flake = nixpkgs; + nixos.flake = userFlakeNixOS; override.flake = userFlakeInputs.override; }; diff --git a/lib/devos/mkNodes.nix b/lib/devos/mkNodes.nix index 7892506e..83906ce8 100644 --- a/lib/devos/mkNodes.nix +++ b/lib/devos/mkNodes.nix @@ -1,4 +1,4 @@ -{ lib, ... }: +{ lib }: /** Synopsis: mkNodes _nixosConfigurations_ diff --git a/lib/devos/mkPackages.nix b/lib/devos/mkPackages.nix index 17cba0e2..eeac9294 100644 --- a/lib/devos/mkPackages.nix +++ b/lib/devos/mkPackages.nix @@ -1,4 +1,6 @@ -{ lib, userFlakeSelf, ... }: +{ lib }: + +{ userFlakeSelf }: { pkgs }: let diff --git a/lib/devos/mkPkgs.nix b/lib/devos/mkPkgs.nix index 7fb2570d..8fb22013 100644 --- a/lib/devos/mkPkgs.nix +++ b/lib/devos/mkPkgs.nix @@ -1,6 +1,6 @@ -{ lib, nixpkgs, userFlakeSelf, utils, userFlakeInputs, ... }: +{ lib, utils }: -{ extern, overrides }: +{ extern, overrides, userFlakeNixOS, userFlakeSelf, userFlakeInputs }: (utils.lib.eachDefaultSystem (system: let @@ -20,6 +20,6 @@ ++ extern.overlays ++ (lib.attrValues userFlakeSelf.overlays); in - { pkgs = lib.os.pkgImport nixpkgs overlays system; } + { pkgs = lib.os.pkgImport userFlakeNixOS overlays system; } ) ).pkgs diff --git a/lib/devos/mkProfileAttrs.nix b/lib/devos/mkProfileAttrs.nix index 7168b291..0a96cfb5 100644 --- a/lib/devos/mkProfileAttrs.nix +++ b/lib/devos/mkProfileAttrs.nix @@ -1,4 +1,4 @@ -{ lib, ... }: +{ lib }: let mkProfileAttrs = /** diff --git a/lib/devos/mkSuites.nix b/lib/devos/mkSuites.nix index 0a5950bb..cb736793 100644 --- a/lib/devos/mkSuites.nix +++ b/lib/devos/mkSuites.nix @@ -1,4 +1,4 @@ -{ lib, ... }: +{ lib }: { users, profiles, userProfiles, suites } @ args: let diff --git a/lib/devos/recImport.nix b/lib/devos/recImport.nix index e9e5da68..c96c9352 100644 --- a/lib/devos/recImport.nix +++ b/lib/devos/recImport.nix @@ -1,4 +1,4 @@ -{ lib, ... }: +{ lib }: { dir, _import ? base: import "${dir}/${base}.nix" }: lib.mapFilterAttrs diff --git a/lib/flake.nix b/lib/flake.nix index 1810b1b8..17d4754d 100644 --- a/lib/flake.nix +++ b/lib/flake.nix @@ -14,24 +14,19 @@ outputs = inputs@{ self, nixpkgs, deploy, devshell, utils, ... }: let - inherit (nixpkgs) lib; - - # We work with a combined lib, internally ... - combinedLib = lib.extend (final: prev: - let callLibs = file: import file - ({ - lib = final; - userFlakeNixos = {}; - userFlakeSelf = {}; - userFlakeInputs = {}; # TODO: Erm, theese must become proper arguments to mkFlake - } // inputs); - in - with final; + lib = nixpkgs.lib.makeExtensible (self: let + callLibs = file: import file + ({ + lib = self; + userFlakeNixos = {}; + userFlakeSelf = {}; + userFlakeInputs = {}; # TODO: Erm, theese must become proper arguments to mkFlake + } // inputs); - attrs = import ./attrs.nix { lib = prev; }; - lists = import ./lists.nix { lib = prev; }; - strings = import ./strings.nix { lib = prev; }; + attrs = import ./attrs.nix { lib = nixpkgs.lib // self; }; + lists = import ./lists.nix { lib = nixpkgs.lib // self; }; + strings = import ./strings.nix { lib = nixpkgs.lib // self; }; in utils.lib @@ -39,9 +34,10 @@ // { - inherit callLibs; - - os = import ./devos { lib = final; }; + os = import ./devos { + lib = nixpkgs.lib // self; + inherit utils; + }; mkFlake = { __functor = callLibs ./mkFlake; @@ -50,12 +46,17 @@ }; pkgs-lib = import ./pkgs-lib { - lib = final; + lib = nixpkgs.lib // self; inherit nixpkgs deploy devshell; }; - inherit (attrs) mapFilterAttrs genAttrs' safeReadDir - pathsToImportedAttrs concatAttrs filterPackages; + inherit (attrs) + mapFilterAttrs + genAttrs' + safeReadDir + pathsToImportedAttrs + concatAttrs + filterPackages; inherit (lists) pathsIn; inherit (strings) rgxToString; } @@ -65,10 +66,9 @@ { - # ... but don't force that choice onto the user lib = utils.lib // { - mkFlake = combinedLib.mkFlake; - pkgs-lib = combinedLib.pkgs-lib; + inherit (lib) + mkFlake; }; } @@ -83,7 +83,7 @@ checks = { tests = import ./tests { inherit (nixpkgs') pkgs; - lib = combinedLib; + lib = nixpkgs.lib // lib; }; }; }