From: Roman Bogorodskiy Date: Tue, 18 Nov 2025 18:01:52 +0000 (+0100) Subject: bhyve: support VNC 'wait' attribute X-Git-Tag: v11.10.0-rc1~70 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5944f566acf6db797c1ebf97ba0d02216953e325;p=thirdparty%2Flibvirt.git bhyve: support VNC 'wait' attribute Bhyve supports the 'wait' option for the VNC device configuration. When enabled, VM boots only upon a VNC connection. Sample device configuration looks like this: -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait Signed-off-by: Roman Bogorodskiy Reviewed-by: Martin Kletzander --- diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c index 8bfd5a6f93..e42e7b1ecc 100644 --- a/src/bhyve/bhyve_command.c +++ b/src/bhyve/bhyve_command.c @@ -651,6 +651,9 @@ bhyveBuildGraphicsArgStr(const virDomainDef *def, virBufferAsprintf(&opt, ",vga=%s", virDomainVideoVGAConfTypeToString(video->driver->vgaconf)); + if (graphics->data.vnc.wait == VIR_TRISTATE_BOOL_YES) + virBufferAddLit(&opt, ",wait"); + virCommandAddArg(cmd, "-s"); virCommandAddArgBuffer(cmd, &opt); return 0; diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait-no.args b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait-no.args new file mode 100644 index 0000000000..049e65227d --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait-no.args @@ -0,0 +1,13 @@ +bhyve \ +-c 1 \ +-m 214 \ +-u \ +-H \ +-P \ +-s 0:0,hostbridge \ +-l bootrom,/path/to/test.fd \ +-s 1:0,lpc \ +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ +-s 4:0,fbuf,tcp=127.0.0.1:5904 \ +bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait-no.ldargs b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait-no.ldargs new file mode 100644 index 0000000000..421376db9e --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait-no.ldargs @@ -0,0 +1 @@ +dummy diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait-no.xml b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait-no.xml new file mode 100644 index 0000000000..61c028bfc7 --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait-no.xml @@ -0,0 +1,26 @@ + + bhyve + df3be7e7-a104-11e3-aeb0-50e5492bd3dc + 219136 + 1 + + hvm + /path/to/test.fd + + + + + + +
+ + + + +
+ + + + + + diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait.args b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait.args new file mode 100644 index 0000000000..4394bdfb4b --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait.args @@ -0,0 +1,13 @@ +bhyve \ +-c 1 \ +-m 214 \ +-u \ +-H \ +-P \ +-s 0:0,hostbridge \ +-l bootrom,/path/to/test.fd \ +-s 1:0,lpc \ +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:00:00:00 \ +-s 4:0,fbuf,tcp=127.0.0.1:5904,wait \ +bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait.ldargs b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait.ldargs new file mode 100644 index 0000000000..421376db9e --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait.ldargs @@ -0,0 +1 @@ +dummy diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait.xml b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait.xml new file mode 100644 index 0000000000..8cfd40ad7d --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-vnc-wait.xml @@ -0,0 +1,26 @@ + + bhyve + df3be7e7-a104-11e3-aeb0-50e5492bd3dc + 219136 + 1 + + hvm + /path/to/test.fd + + + + + + +
+ + + + +
+ + + + + + diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c index 2a785ef8aa..650313c2da 100644 --- a/tests/bhyvexml2argvtest.c +++ b/tests/bhyvexml2argvtest.c @@ -235,6 +235,8 @@ mymain(void) DO_TEST("vnc-autoport"); DO_TEST("vnc-resolution"); DO_TEST("vnc-password"); + DO_TEST("vnc-wait"); + DO_TEST("vnc-wait-no"); DO_TEST_FAILURE("vnc-password-comma"); DO_TEST("cputopology"); DO_TEST_FAILURE("cputopology-nvcpu-mismatch"); diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-vnc-wait-no.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-vnc-wait-no.xml new file mode 100644 index 0000000000..4ba003eee3 --- /dev/null +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-vnc-wait-no.xml @@ -0,0 +1,44 @@ + + bhyve + df3be7e7-a104-11e3-aeb0-50e5492bd3dc + 219136 + 219136 + 1 + + hvm + /path/to/test.fd + + + + destroy + restart + destroy + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + +