diff --git a/lib.nix b/lib.nix index fc80719d..d91b0bc7 100644 --- a/lib.nix +++ b/lib.nix @@ -87,6 +87,7 @@ in { gensokyo-zone = { inherit inputs; inherit (inputs) self; + inherit (inputs.self) overlays; inherit (inputs.self.lib) tree meta lib systems; }; generate = import ./generate.nix {inherit inputs tree;}; diff --git a/modules/extern/nixos/krb5.nix b/modules/extern/nixos/krb5.nix index a045abc3..93a76474 100644 --- a/modules/extern/nixos/krb5.nix +++ b/modules/extern/nixos/krb5.nix @@ -338,6 +338,11 @@ in { }; config = { + nixpkgs = mkIf cfg.enable { + overlays = [ + gensokyo-zone.overlays.krb5 + ]; + }; security = { krb5 = mkIf cfg.enable (unmerged.merge cfg.set.krb5Settings); ipa = mkIf cfg.enable (unmerged.merge cfg.set.ipaSettings); diff --git a/nixos/base/nixpkgs.nix b/nixos/base/nixpkgs.nix index 4a93ca20..6404e809 100644 --- a/nixos/base/nixpkgs.nix +++ b/nixos/base/nixpkgs.nix @@ -1,11 +1,10 @@ -{inputs, ...}: { +{inputs, ...}: let + inherit (inputs.self) overlays; +in { nixpkgs = { overlays = [ inputs.arcexprs.overlays.default - (import ../../overlays/barcodebuddy.nix) - (import ../../overlays/samba.nix) - (import ../../overlays/nginx.nix) - (import ../../overlays/krb5.nix) + overlays.default ]; config = { allowUnfree = true; diff --git a/outputs.nix b/outputs.nix index 5922606b..d375c72e 100644 --- a/outputs.nix +++ b/outputs.nix @@ -14,7 +14,17 @@ devShells = import ./devShells.nix {inherit system inputs;}; packages = import ./packages {inherit system inputs;}; legacyPackages = { - inherit (import ./overlays {inherit system inputs;}) pkgs; + pkgs = import inputs.nixpkgs { + inherit system; + overlays = [ + inputs.self.overlays.default + inputs.self.overlays.deploy-rs + inputs.self.overlays.arc + ]; + config = { + allowUnfree = true; + }; + }; patchedNixpkgs = pkgs.applyPatches { name = "nixpkgs"; src = inputs.nixpkgs; @@ -50,6 +60,7 @@ in { inherit (outputs) devShells legacyPackages packages checks; inherit (systems) deploy nixosConfigurations; + inherit (tree.impure) overlays; nixosModules = treeToModulesOutput tree.impure.modules.extern.nixos; homeModules = treeToModulesOutput tree.impure.modules.extern.home; miscModules = treeToModulesOutput tree.impure.modules.extern.misc; diff --git a/overlays/default.nix b/overlays/default.nix index 761f9614..2c1323bb 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,32 +1,19 @@ { inputs, - system, -}: { - pkgs = import inputs.nixpkgs { - inherit system; - overlays = [ - inputs.deploy-rs.overlays.default or inputs.deploy-rs.overlay - inputs.arcexprs.overlays.default - (import ./barcodebuddy.nix) - (import ./samba.nix) - (import ./nginx.nix) - (import ./krb5.nix) - (final: prev: { - jemalloc = - if final.hostPlatform != "aarch64-darwin" - then prev.jemalloc - else null; - }) - ]; - config = { - allowUnfree = true; - allowBroken = true; - allowUnsupportedSystem = false; - permittedInsecurePackages = [ - "ffmpeg-3.4.8" - "ffmpeg-2.8.17" - "openssl-1.1.1w" - ]; - }; - }; + ... +}: let + inherit (inputs.self.lib) nixlib; +in rec { + default = nixlib.composeManyExtensions [ + barcodebuddy + krb5 + nginx + samba + ]; + barcodebuddy = import ./barcodebuddy.nix; + krb5 = import ./krb5.nix; + nginx = import ./nginx.nix; + samba = import ./samba.nix; + deploy-rs = inputs.deploy-rs.overlays.default or inputs.deploy-rs.overlay; + arc = inputs.arcexprs.overlays.default; } diff --git a/tree.nix b/tree.nix index 36a9327c..99121a37 100644 --- a/tree.nix +++ b/tree.nix @@ -77,10 +77,6 @@ "nixos/*".functor = { enable = true; }; - "hardware".evaluateDefault = true; - "nixos/cross".evaluateDefault = true; - "hardware/*".evaluateDefault = true; - "home".evaluateDefault = true; - "home/*".functor.enable = true; + "overlays".evaluateDefault = true; }; })