dot.nix/iso/default.nix
Chris Toph dc35d4335f Enable ISO ARM cross-compilation & update CI config
- Allow rune to cross compile ARM binaries
- Github workflow only compiles x86 for now
2025-06-16 19:59:36 -04:00

72 lines
1.8 KiB
Nix

{
config,
inputs,
isARM,
lib,
pkgs,
system,
...
}:
let
isCross = pkgs.stdenv.buildPlatform.system != pkgs.stdenv.hostPlatform.system;
in
{
isoImage = {
isoName = lib.mkForce "nixos-${config.hostSpec.hostName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso";
makeEfiBootable = true;
makeUsbBootable = true;
compressImage = false;
squashfsCompression = lib.mkIf isARM "gzip";
includeSystemBuildDependencies = lib.mkIf (isARM || isCross) false;
};
## SSH & NETWORK ##
services.openssh = {
enable = true;
settings = {
PermitRootLogin = "yes";
PasswordAuthentication = true;
};
};
networking = {
wireless.enable = false;
networkmanager.enable = true;
enableIPv6 = false;
};
## PKGS ##
environment.systemPackages = with pkgs; [
parted
gptfdisk
cryptsetup
gparted
];
## VM additions ##
services.spice-vdagentd.enable = true;
services.qemuGuest.enable = true;
virtualisation.vmware.guest.enable = pkgs.stdenv.hostPlatform.isx86;
virtualisation.hypervGuest.enable =
pkgs.stdenv.hostPlatform.isx86 || pkgs.stdenv.hostPlatform.isAarch64;
services.xe-guest-utilities.enable = pkgs.stdenv.hostPlatform.isx86;
# The VirtualBox guest additions rely on an out-of-tree kernel module
# which lags behind kernel releases, potentially causing broken builds.
virtualisation.virtualbox.guest.enable = false;
## System ##
system.stateVersion = "25.05";
nixpkgs.hostPlatform = system;
users.mutableUsers = lib.mkForce true; # Allow password changes
nixpkgs.config = {
allowUnsupportedSystem = true;
allowUnfree = true;
allowBroken = false;
};
systemd.services = lib.mkIf isARM {
systemd-firstboot.enable = lib.mkForce false;
systemd-machine-id-commit.enable = lib.mkForce false;
};
}