diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index f6739977fa4f..fb8644dd13a6 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -92,9 +92,7 @@ let
# `switch-to-configuration' that activates the configuration and
# makes it bootable.
baseSystem = pkgs.stdenvNoCC.mkDerivation {
- name = let hn = config.networking.hostName;
- nn = if (hn != "") then hn else "unnamed";
- in "nixos-system-${nn}-${config.system.nixos.label}";
+ name = "nixos-system-${config.system.name}-${config.system.nixos.label}";
preferLocalBuild = true;
allowSubstitutes = false;
buildCommand = systemBuilder;
@@ -265,6 +263,21 @@ in
'';
};
+ system.name = mkOption {
+ type = types.str;
+ default =
+ if config.networking.hostName == ""
+ then "unnamed"
+ else config.networking.hostName;
+ defaultText = '''networking.hostName' if non empty else "unnamed"'';
+ description = ''
+ The name of the system used in the derivation.
+
+ That derivation has the following name:
+ "nixos-system-''${config.system.name}-''${config.system.nixos.label}"
+ '';
+ };
+
};
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index 9154b0c00d73..2e5e276308d5 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -16,11 +16,6 @@ let
qemu = config.system.build.qemu or pkgs.qemu_test;
- vmName =
- if config.networking.hostName == ""
- then "noname"
- else config.networking.hostName;
-
cfg = config.virtualisation;
consoles = lib.concatMapStringsSep " " (c: "console=${c}") cfg.qemu.consoles;
@@ -156,7 +151,7 @@ let
# Start QEMU.
exec ${qemuBinary qemu} \
- -name ${vmName} \
+ -name ${config.system.name} \
-m ${toString config.virtualisation.memorySize} \
-smp ${toString config.virtualisation.cores} \
-device virtio-rng-pci \
@@ -294,7 +289,7 @@ in
virtualisation.diskImage =
mkOption {
- default = "./${vmName}.qcow2";
+ default = "./${config.system.name}.qcow2";
description =
''
Path to the disk image containing the root filesystem.
@@ -712,7 +707,7 @@ in
''
mkdir -p $out/bin
ln -s ${config.system.build.toplevel} $out/system
- ln -s ${pkgs.writeScript "run-nixos-vm" startVM} $out/bin/run-${vmName}-vm
+ ln -s ${pkgs.writeScript "run-nixos-vm" startVM} $out/bin/run-${config.system.name}-vm
'';
# When building a regular system configuration, override whatever