diff --git a/hosts/build01/default.nix b/hosts/build01/default.nix index 96969c4..b183fb0 100644 --- a/hosts/build01/default.nix +++ b/hosts/build01/default.nix @@ -6,6 +6,8 @@ inputs.srvos.nixosModules.hardware-hetzner-online-amd ]; + nixpkgs.hostPlatform.gcc.arch = "znver2"; + # Emulate riscv64 until we have proper builders boot.binfmt.emulatedSystems = [ "riscv64-linux" ]; boot.binfmt.preferStaticEmulators = true; diff --git a/hosts/build02/default.nix b/hosts/build02/default.nix index acc652f..1324a14 100644 --- a/hosts/build02/default.nix +++ b/hosts/build02/default.nix @@ -9,6 +9,8 @@ inputs.srvos.nixosModules.hardware-hetzner-online-amd ]; + nixpkgs.hostPlatform.gcc.arch = "znver2"; + # set in srvos, remove when reinstalling networking.hostId = "deadbeef"; diff --git a/hosts/build03/default.nix b/hosts/build03/default.nix index 5f92d6b..606cba0 100644 --- a/hosts/build03/default.nix +++ b/hosts/build03/default.nix @@ -16,6 +16,8 @@ inputs.srvos.nixosModules.hardware-hetzner-online-amd ]; + nixpkgs.hostPlatform.gcc.arch = "znver4"; + systemd.network.networks."10-uplink".networkConfig.Address = "2a01:4f8:2190:2698::2"; system.stateVersion = "23.11"; diff --git a/hosts/build04/default.nix b/hosts/build04/default.nix index fd3c7ce..f8cabc4 100644 --- a/hosts/build04/default.nix +++ b/hosts/build04/default.nix @@ -9,6 +9,8 @@ inputs.srvos.nixosModules.hardware-hetzner-online-arm ]; + nixpkgs.hostPlatform.gcc.arch = "armv8-a"; + # error: failed to start SSH connection # https://github.com/nix-community/infra/issues/1416 services.openssh.settings.MaxStartups = 100; diff --git a/modules/nixos/cgroups.nix b/modules/nixos/cgroups.nix index dc289a7..465cc40 100644 --- a/modules/nixos/cgroups.nix +++ b/modules/nixos/cgroups.nix @@ -24,6 +24,8 @@ "cgroups" ]; + system-features = [ "uid-range" ]; + auto-allocate-uids = true; use-cgroups = true; }; diff --git a/modules/nixos/common/builder.nix b/modules/nixos/common/builder.nix index 56ddd5e..bb785ae 100644 --- a/modules/nixos/common/builder.nix +++ b/modules/nixos/common/builder.nix @@ -19,6 +19,30 @@ script = builtins.readFile "${inputs.self}/modules/shared/free-space.bash"; }; + nixpkgs.hostPlatform = { + inherit (pkgs.hostPlatform) system; + }; + + nix.settings.extra-platforms = lib.mkIf (config.nixpkgs.hostPlatform.system == "x86_64-linux") [ + (lib.mkIf (config.boot.binfmt.emulatedSystems == [ ]) "i686-linux") + "x86_64-v1-linux" + "x86_64-v2-linux" + "x86_64-v3-linux" + (lib.mkIf (builtins.elem "gccarch-x86-64-v4" config.nix.settings.system-features) "x86_64-v4-linux") + ]; + + nix.settings.system-features = + [ + "benchmark" + "big-parallel" + "kvm" + "nixos-test" + "gccarch-${config.nixpkgs.hostPlatform.gcc.arch}" + ] + ++ map (x: "gccarch-${x}") ( + lib.systems.architectures.inferiors.${config.nixpkgs.hostPlatform.gcc.arch} or [ ] + ); + # Bump the open files limit so that non-root users can run NixOS VM tests security.pam.loginLimits = [ {