Skip to content

Commit 9daceae

Browse files
committed
Compatibility with qemu 2.11.1 (Ubuntu 18.04 LTS)
* `-accel help` writes to stderr, not stdout * `-netdev help` is not implemented The -netdev info is only used to detect vde support, which isn't used on Linux, so this doesn't affect Lima. Signed-off-by: Jan Dubois <jan.dubois@suse.com>
1 parent b7b396a commit 9daceae

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

pkg/qemu/qemu.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,14 +165,22 @@ func inspectFeatures(exe string) (*features, error) {
165165
return nil, fmt.Errorf("failed to run %v: stdout=%q, stderr=%q", cmd.Args, stdout.String(), stderr.String())
166166
}
167167
f.AccelHelp = stdout.Bytes()
168+
// on older versions qemu will write "help" output to stderr
169+
if len(f.AccelHelp) == 0 {
170+
f.AccelHelp = stderr.Bytes()
171+
}
168172

169173
cmd = exec.Command(exe, "-M", "none", "-netdev", "help")
170174
cmd.Stdout = &stdout
171175
cmd.Stderr = &stderr
172176
if err := cmd.Run(); err != nil {
173-
return nil, fmt.Errorf("failed to run %v: stdout=%q, stderr=%q", cmd.Args, stdout.String(), stderr.String())
177+
logrus.Warnf("failed to run %v: stdout=%q, stderr=%q", cmd.Args, stdout.String(), stderr.String())
178+
} else {
179+
f.NetdevHelp = stdout.Bytes()
180+
if len(f.NetdevHelp) == 0 {
181+
f.NetdevHelp = stderr.Bytes()
182+
}
174183
}
175-
f.NetdevHelp = stdout.Bytes()
176184
return &f, nil
177185
}
178186

0 commit comments

Comments
 (0)