fangorn/sunshine-qemu
public
QEMU D-Bus display interface
dbus-display1.xml describes the org.qemu.Display1.* D-Bus interfaces that QEMU exports
when started with -display dbus and -audiodev dbus. Sunshine’s capture = qemu backend
generates its GDBus bindings from this file at configure time.
Provenance
| Item | Value |
|---|---|
| Upstream | https://gitlab.com/qemu-project/qemu |
| Release | v11.1.1 (qemu-11.1.1.tar.xz) |
| Commit | c3d48b7d1e89604920e5b81b91140c2ad39a1943 |
| Source file | ui/dbus-display1.xml |
| Source sha256 | b611ea1e075e8380611437ba0ca65ee77b970c435530e349fe9b5ef1998ee335 |
| Vendored sha256 | 9531784ec43c168df8268bf31a70812f9ddb867f41acd2684fab7f51ff59e87e |
Why the file is preprocessed
The upstream XML contains <?if $(env.HOST_OS) ...?> processing instructions that
gdbus-codegen cannot parse. QEMU’s build runs scripts/xml-preprocess.py first. The vendored
copy is the output of that same step for Linux hosts:
HOST_OS=linux python3 qemu-11.1.1/scripts/xml-preprocess.py \
qemu-11.1.1/ui/dbus-display1.xml \
third-party/qemu-dbus-display/dbus-display1.xml
The bindings are generated with the same flags QEMU uses (ui/meson.build):
gdbus-codegen --glib-min-required 2.64 --interface-prefix org.qemu. \
--c-namespace QemuDBus --generate-c-code dbus-display1 dbus-display1.xml
Updating
Repeat the preprocessing command against a newer QEMU release, then update the table above. The
interfaces are versioned by name (org.qemu.Display1); new optional interfaces are advertised
through the Interfaces properties, so older QEMU releases keep working with newer bindings.
License
ui/dbus-display1.xml carries no license header. Per QEMU’s LICENSE file, source files with no
licensing information are released under the GNU General Public License, version 2 or (at your
option) any later version, which is compatible with Sunshine’s GPL-3.0 license.
scripts/xml-preprocess.py is MIT licensed and is not vendored.