On 2/10/20 12:20 PM, Stefan Reiter wrote: > 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> > --- > > v1 -> v2: > * handle error in kvm_user_version > * corrected commit message (2.12 -> 2.8) > > @Thomas: If kvm_user_version() failed, we actually died in min_version before. > You're suggested code also didn't quite work, because it still printed > warnings > in case $kvmver was undef. > > PVE/QemuServer.pm | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm > index 318ee54..d30cdb5 100644 > --- a/PVE/QemuServer.pm > +++ b/PVE/QemuServer.pm > @@ -3405,7 +3405,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}; > @@ -3415,6 +3414,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); > @@ -3430,14 +3434,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; >
test system fails with this: not ok 9 - 'simple1.conf' - Simple test for a basic configuration with no special things got unexpected error: Detected old QEMU binary ('2.12.1', at least 3.0 is required) we probably want to move it up to 3.0, and copy it over for negative testing as well? Looks OK besides that. _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel