Skip to content

Document intent for supported build platforms and bump min glib to 2.42

Daniel P. Berrangé qemu-devel xen-devel 1 version Applied

Status from this message: Queued after adding to patch 3 the removal of CentOS 6 and min-glib

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest3 patches 18 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/3qemu-doc: provide details of supported build platformsqemu-doc.texi+68 -00 replies
2/3glib: bump min required glib library version to 2.42configure include/glib-compat.h tests/test-qmp-event.c +3 more+9 -3321 reply
3/3glib: enforce the minimum required version and warn about old APIsinclude/glib-compat.h+49 -04 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [Qemu-devel] [PATCH 0/3] Document intent for supported build platforms and bump min glib to 2.42

This short series is a followup the discussions around min glib version when Olaf found we had accidentally increased the min glib by using a newer function:

https://lists.gnu.org/archive/html/qemu-devel/2018-04/msg02699.html

Some key points from that thread

- Although we have a docker job that tries to test the min glib version is adhered to, that's only run post-build, not by Peter's merge tests, nor by patchew.

- The docker min glib test failed to detect the problem anyway because RHEL had backported the symbol in question.

- The docker min glib test only builds with certain configure options so isn't foolproof.

- The modern distros we implicitly care about have way newer glib

    than 2.22

- Peter's OS-X build host previously had 2.22, but after switching from fink to homebrew now has 2.56

- I suggested following libvirt's lead in writing a policy for how we pick supported OS targets to inform maintainers when min versions can be increased.

This series writes such a document largely based on one I wrote for libvirt with a few changes, largely around OS-X and *BSD. Note it is not meant to be an exhaustive list of distros we'll build on, rather a representative selection, so that we can identify the range of 3rd party library versions we need to care about. So if your favourite distro is missing, dont be alarmed, as it probably ships similar vintage software to one of those listed - if not feel free to suggest additions.

Based on that doc and https://repology.org/metapackage/glib/versions,
I identified that we could feasibly set min glib to 2.42. Note that this would be dropping RHEL-6 as a build host (RHEL-6.0 came out in 2010 so that's reasonable to drop IMHO). It would still cover 2 major Debian versions and 2 most recent Ubuntu LTS (16.04, 18.04, but *not* 14.04). This min glib lets us remove almost all our compat code.

Most interestingly, thanks tothe new min version being greater than 2.32, we can now use GLIB_VERSION_MAX_ALLOWED to validate the correct API usage according to our min version:

https://developer.gnome.org/glib/stable/glib-Version-Information.html#GLIB-VERSION-MAX-ALLOWED:CAPS

This means that *all* our CI jobs & developer builds will be enforcing the min version, so means very many more conditionally built features will get their build validated against min glib version. This would do a much better job of catching mistakes than our min-glib docker job, making that obsolete.

Daniel P. Berrangé (3):
qemu-doc: provide details of supported build platforms
glib: bump min required glib library version to 2.42
glib: enforce the minimum required version and warn about old APIs

 configure               |   6 +-
 include/glib-compat.h   | 362 ++++++------------------------------------------
 qemu-doc.texi           |  68 +++++++++
 tests/test-qmp-event.c  |   2 +-
 tests/tpm-emu.h         |   4 +-
 tests/vhost-user-test.c |   4 +-
 trace/simple.c          |   6 +-
 7 files changed, 123 insertions(+), 329 deletions(-)
Signature · 1 line
2.14.3