From: Marc-André Lureau <marcandre.lureau@redhat.com> Add qemu_vnc configuration entry to specify the path to the standalone qemu-vnc binary. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> --- src/qemu/libvirtd_qemu.aug | 1 + src/qemu/qemu.conf.in | 8 ++++++++ src/qemu/qemu_conf.c | 6 ++++++ src/qemu/qemu_conf.h | 1 + src/qemu/test_libvirtd_qemu.aug.in | 1 + 5 files changed, 17 insertions(+) diff --git a/src/qemu/libvirtd_qemu.aug b/src/qemu/libvirtd_qemu.aug index eb790d48be..311992e441 100644 --- a/src/qemu/libvirtd_qemu.aug +++ b/src/qemu/libvirtd_qemu.aug @@ -123,6 +123,7 @@ module Libvirtd_qemu = | str_entry "pr_helper" | str_entry "slirp_helper" | str_entry "qemu_rdp" + | str_entry "qemu_vnc" | str_entry "dbus_daemon" | bool_entry "set_process_name" | int_entry "max_processes" diff --git a/src/qemu/qemu.conf.in b/src/qemu/qemu.conf.in index 5eacd70022..97b0141cf6 100644 --- a/src/qemu/qemu.conf.in +++ b/src/qemu/qemu.conf.in @@ -1094,6 +1094,14 @@ #qemu_rdp = "qemu-rdp" +# Path to the standalone qemu-vnc VNC server. +# When available and both <graphics type='dbus'/> and <graphics type='vnc'/> +# are configured, libvirt will use qemu-vnc instead of QEMU's built-in VNC. +# If this is not an absolute path, the program will be searched for +# in $PATH. +#qemu_vnc = "qemu-vnc" + + # Path to the dbus-daemon # If this is not an absolute path, the program will be searched for # in $PATH. diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 724617ee8b..6981edda18 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -116,6 +116,7 @@ VIR_ONCE_GLOBAL_INIT(virQEMUConfig); #define QEMU_BRIDGE_HELPER "qemu-bridge-helper" #define QEMU_PR_HELPER "qemu-pr-helper" #define QEMU_RDP "qemu-rdp" +#define QEMU_VNC "qemu-vnc" #define QEMU_DBUS_DAEMON "dbus-daemon" @@ -290,6 +291,7 @@ virQEMUDriverConfig *virQEMUDriverConfigNew(bool privileged, cfg->slirpHelperName = g_strdup(QEMU_SLIRP_HELPER); cfg->dbusDaemonName = g_strdup(QEMU_DBUS_DAEMON); cfg->qemuRdpName = g_strdup(QEMU_RDP); + cfg->qemuVncName = g_strdup(QEMU_VNC); cfg->securityDefaultConfined = true; cfg->securityRequireConfined = false; @@ -421,6 +423,7 @@ static void virQEMUDriverConfigDispose(void *obj) g_free(cfg->slirpHelperName); g_free(cfg->dbusDaemonName); g_free(cfg->qemuRdpName); + g_free(cfg->qemuVncName); g_free(cfg->autoDumpPath); @@ -858,6 +861,9 @@ virQEMUDriverConfigLoadProcessEntry(virQEMUDriverConfig *cfg, if (virConfGetValueString(conf, "qemu_rdp", &cfg->qemuRdpName) < 0) return -1; + if (virConfGetValueString(conf, "qemu_vnc", &cfg->qemuVncName) < 0) + return -1; + if (virConfGetValueBool(conf, "set_process_name", &cfg->setProcessName) < 0) return -1; if (virConfGetValueUInt(conf, "max_processes", &cfg->maxProcesses) < 0) diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index d558f3ab19..5ea1b28f3e 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -199,6 +199,7 @@ struct _virQEMUDriverConfig { char *slirpHelperName; char *dbusDaemonName; char *qemuRdpName; + char *qemuVncName; bool macFilter; diff --git a/src/qemu/test_libvirtd_qemu.aug.in b/src/qemu/test_libvirtd_qemu.aug.in index 2582c6a09c..c4cf9cf634 100644 --- a/src/qemu/test_libvirtd_qemu.aug.in +++ b/src/qemu/test_libvirtd_qemu.aug.in @@ -129,6 +129,7 @@ module Test_libvirtd_qemu = { "pr_helper" = "qemu-pr-helper" } { "slirp_helper" = "/usr/bin/slirp-helper" } { "qemu_rdp" = "qemu-rdp" } +{ "qemu_vnc" = "qemu-vnc" } { "dbus_daemon" = "dbus-daemon" } { "swtpm_user" = "tss" } { "swtpm_group" = "tss" } -- 2.53.0