Some of the recent QMP changes require at least 2.8.0, but since the oldest version we officially package for 6.x is 4.0.0 anyway, checking for at least 3.0 should not break anyone's setup.
Note that this does not affect machine version checks, only the installed QEMU binary version. Signed-off-by: Stefan Reiter <s.rei...@proxmox.com> --- v2 -> v3: * include test case and fix existing simple1 test v1 -> v2: * handle error in kvm_user_version * corrected commit message (2.12 -> 2.8) PVE/QemuServer.pm | 14 +++++--------- test/cfg2cmd/old-qemu.conf | 4 ++++ test/cfg2cmd/simple1.conf | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 test/cfg2cmd/old-qemu.conf diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 27b9866..23176dd 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -3415,7 +3415,6 @@ sub config_to_command { my $devices = []; my $pciaddr = ''; my $bridges = {}; - my $vernum = 0; # unknown my $ostype = $conf->{ostype}; my $winversion = windows_version($ostype); my $kvm = $conf->{kvm}; @@ -3425,6 +3424,11 @@ sub config_to_command { my $kvm_binary = get_command_for_arch($arch); my $kvmver = kvm_user_version($kvm_binary); + if (!$kvmver || $kvmver !~ m/^(\d+)\.(\d+)/ || $1 < 3) { + $kvmver //= "undefined"; + die "Detected old QEMU binary ('$kvmver', at least 3.0 is required)\n"; + } + my $add_pve_version = min_version($kvmver, 4, 1); my $machine_type = get_vm_machine($conf, $forcemachine, $arch, $add_pve_version); @@ -3458,14 +3462,6 @@ sub config_to_command { if !defined kvm_version(); } - if ($kvmver =~ m/^(\d+)\.(\d+)$/) { - $vernum = $1*1000000+$2*1000; - } elsif ($kvmver =~ m/^(\d+)\.(\d+)\.(\d+)$/) { - $vernum = $1*1000000+$2*1000+$3; - } - - die "detected old qemu-kvm binary ($kvmver)\n" if $vernum < 15000; - my $q35 = PVE::QemuServer::Machine::machine_type_is_q35($conf); my $hotplug_features = parse_hotplug_features(defined($conf->{hotplug}) ? $conf->{hotplug} : '1'); my $use_old_bios_files = undef; diff --git a/test/cfg2cmd/old-qemu.conf b/test/cfg2cmd/old-qemu.conf new file mode 100644 index 0000000..4594844 --- /dev/null +++ b/test/cfg2cmd/old-qemu.conf @@ -0,0 +1,4 @@ +# TEST: Simple test for a basic configuration with no special things +# QEMU_VERSION: 2.12.1 +# EXPECT_ERROR: Detected old QEMU binary ('2.12.1', at least 3.0 is required) +smbios1: uuid=7b10d7af-b932-4c66-b2c3-3996152ec465 diff --git a/test/cfg2cmd/simple1.conf b/test/cfg2cmd/simple1.conf index 10a4c31..16a2402 100644 --- a/test/cfg2cmd/simple1.conf +++ b/test/cfg2cmd/simple1.conf @@ -1,5 +1,5 @@ # TEST: Simple test for a basic configuration with no special things -# QEMU_VERSION: 2.12.1 +# QEMU_VERSION: 3.0 bootdisk: scsi0 cores: 3 ide2: none,media=cdrom -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel