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:
```bash
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.