mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
qemu: Simplify QEMU binary search
Now that we have reduced the number of sensible options down to either the native QEMU binary or RHEL's qemu-kvm, we can make virQEMUCapsInitGuest() a bit simpler. Signed-off-by: Andrea Bolognani <abologna@redhat.com>
This commit is contained in:
parent
ed5efee914
commit
3df264080e
@ -746,7 +746,6 @@ virQEMUCapsInitGuest(virCapsPtr caps,
|
|||||||
virArch hostarch,
|
virArch hostarch,
|
||||||
virArch guestarch)
|
virArch guestarch)
|
||||||
{
|
{
|
||||||
size_t i;
|
|
||||||
char *binary = NULL;
|
char *binary = NULL;
|
||||||
virQEMUCapsPtr qemubinCaps = NULL;
|
virQEMUCapsPtr qemubinCaps = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@ -756,6 +755,13 @@ virQEMUCapsInitGuest(virCapsPtr caps,
|
|||||||
*/
|
*/
|
||||||
binary = virQEMUCapsFindBinaryForArch(hostarch, guestarch);
|
binary = virQEMUCapsFindBinaryForArch(hostarch, guestarch);
|
||||||
|
|
||||||
|
/* RHEL doesn't follow the usual naming for QEMU binaries and ships
|
||||||
|
* a single binary named qemu-kvm outside of $PATH instead */
|
||||||
|
if (virQEMUCapsGuestIsNative(hostarch, guestarch) && !binary) {
|
||||||
|
if (VIR_STRDUP(binary, "/usr/libexec/qemu-kvm") < 0)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Ignore binary if extracting version info fails */
|
/* Ignore binary if extracting version info fails */
|
||||||
if (binary) {
|
if (binary) {
|
||||||
if (!(qemubinCaps = virQEMUCapsCacheLookup(cache, binary))) {
|
if (!(qemubinCaps = virQEMUCapsCacheLookup(cache, binary))) {
|
||||||
@ -764,27 +770,6 @@ virQEMUCapsInitGuest(virCapsPtr caps,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virQEMUCapsGuestIsNative(hostarch, guestarch) && !binary) {
|
|
||||||
const char *kvmbins[] = {
|
|
||||||
"/usr/libexec/qemu-kvm", /* RHEL */
|
|
||||||
};
|
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_CARDINALITY(kvmbins); ++i) {
|
|
||||||
binary = virFindFileInPath(kvmbins[i]);
|
|
||||||
|
|
||||||
if (!binary)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!(qemubinCaps = virQEMUCapsCacheLookup(cache, binary))) {
|
|
||||||
virResetLastError();
|
|
||||||
VIR_FREE(binary);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = virQEMUCapsInitGuestFromBinary(caps,
|
ret = virQEMUCapsInitGuestFromBinary(caps,
|
||||||
binary, qemubinCaps,
|
binary, qemubinCaps,
|
||||||
guestarch);
|
guestarch);
|
||||||
|
Loading…
Reference in New Issue
Block a user