+Fri Jan 30 20:55:57 +0100 2009 Jim Meyering <meyering@redhat.com>
+
+ fix qemud version reporting when qemu is not installed
+ * src/qemu_conf.c (uname_normalize): New function, factored out of...
+ (qemudBuildCommandLine): ...here. Use the new function.
+ (qemudExtractVersion): Use it here, rather than hard-coding "i686".
+
Fri Jan 30 17:16:22 GMT 2009 Daniel P. Berrange <berrange@redhat.com>
* src/qemu_conf.c: Fix ifname= handling for type=ethernet
return ret;
}
+static void
+uname_normalize (struct utsname *ut)
+{
+ uname(ut);
+
+ /* Map i386, i486, i586 to i686. */
+ if (ut->machine[0] == 'i' &&
+ ut->machine[1] != '\0' &&
+ ut->machine[2] == '8' &&
+ ut->machine[3] == '6' &&
+ ut->machine[4] == '\0')
+ ut->machine[1] = '6';
+}
+
int qemudExtractVersion(virConnectPtr conn,
struct qemud_driver *driver) {
const char *binary;
struct stat sb;
+ struct utsname ut;
if (driver->qemuVersion > 0)
return 0;
+ uname_normalize(&ut);
if ((binary = virCapabilitiesDefaultGuestEmulator(driver->caps,
"hvm",
- "i686",
+ ut.machine,
"qemu")) == NULL)
return -1;
char domid[50];
char *pidfile;
- uname(&ut);
-
- /* Nasty hack make i?86 look like i686 to simplify next comparison */
- if (ut.machine[0] == 'i' &&
- ut.machine[2] == '8' &&
- ut.machine[3] == '6' &&
- !ut.machine[4])
- ut.machine[1] = '6';
+ uname_normalize(&ut);
virUUIDFormat(vm->def->uuid, uuid);