diff options
Diffstat (limited to 'modules/by-name/ni')
-rw-r--r-- | modules/by-name/ni/nix/module.nix | 61 | ||||
-rw-r--r-- | modules/by-name/ni/nixpkgs/config.nix | 28 | ||||
-rw-r--r-- | modules/by-name/ni/nixpkgs/module.nix | 17 |
3 files changed, 106 insertions, 0 deletions
diff --git a/modules/by-name/ni/nix/module.nix b/modules/by-name/ni/nix/module.nix new file mode 100644 index 00000000..980bbd39 --- /dev/null +++ b/modules/by-name/ni/nix/module.nix @@ -0,0 +1,61 @@ +{ + pkgs, + # flakes + nixpkgs_as_input, + templates, + self, + system, + ... +}: { + nix = { + package = pkgs.nixVersions.latest; + + # Disable nix channels (this is a remnant of old days) + channel.enable = false; + + registry = { + nixpkgs.flake = nixpkgs_as_input; + n.flake = + nixpkgs_as_input + // { + # Otherwise nixpkgs's config and overlays are not available: + + # Both attrs exists, so we just override both and hope + outputs.legacyPackages."${system}" = pkgs; + legacyPackages."${system}" = pkgs; + }; + + t.flake = templates; + + my_flake.flake = self; + m.flake = self; + }; + + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 7d"; + }; + + settings = { + auto-optimise-store = true; + experimental-features = [ + "nix-command" + "flakes" + #"ca-derivations" + ]; + + use-xdg-base-directories = true; + + #substituters = ["https://cache.ngi0.nixos.org/"]; + #trusted-public-keys = ["cache.ngi0.nixos.org-1:KqH5CBLNSyX184S9BKZJo1LxrxJ9ltnY2uAs5c/f1MA="]; + + fallback = true; # Build from source, if binary can't be substituted + + keep-failed = true; # keep failed tmp build dirs + pure-eval = true; # restrict file system and network access to hash + + sandbox-fallback = false; # Don't disable the sandbox, if the kernel doesn't support it + }; + }; +} diff --git a/modules/by-name/ni/nixpkgs/config.nix b/modules/by-name/ni/nixpkgs/config.nix new file mode 100644 index 00000000..1a24444d --- /dev/null +++ b/modules/by-name/ni/nixpkgs/config.nix @@ -0,0 +1,28 @@ +{ + cfg, + myPkgs, + lib, + ... +}: let + myPkgsOverlay = self: super: myPkgs; +in { + nixpkgs = { + hostPlatform = cfg.systemName; + + overlays = [ + myPkgsOverlay + ]; + + config = { + # TODO: this fails because of the root tempsize, which should be increased + # contentAddressedByDefault = true; + + hostSystem = cfg.systemName; + + allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "pypemicro" # required by pynitrokey + ]; + }; + }; +} diff --git a/modules/by-name/ni/nixpkgs/module.nix b/modules/by-name/ni/nixpkgs/module.nix new file mode 100644 index 00000000..eda3ac89 --- /dev/null +++ b/modules/by-name/ni/nixpkgs/module.nix @@ -0,0 +1,17 @@ +{ + lib, + config, + ... +} @ args: let + cfg = config.soispha.nixpkgs; +in { + options.soispha.nixpkgs = { + enable = lib.mkEnableOption "Nixpkgs config"; + systemName = lib.mkOption { + description = "The name of the system."; + example = "x86_64-linux"; + type = lib.types.str; + }; + }; + config = lib.mkIf cfg.enable (import ./config.nix (args // {inherit cfg;})); +} |