[libvirt] [PATCH 00/11] Integrate usage of glib into libvirt

Daniel P. Berrangé berrange at redhat.com
Fri Sep 27 17:17:22 UTC 2019


This is a followup to a previous patch series:

  https://www.redhat.com/archives/libvir-list/2019-August/msg01374.html

The first abort-on-oom parts of that series merged already.

As well as fixing the issues mentioned last time, the glib parts now do
a little more:

 - Demonstrate conversion of virObject to GObject
 - Convert to gbase64 APIs
 - Start to convert getopt to GOptionContext

I have explicitly now confirmed we can freely mix g_malloc/malloc and
g_free/free, given our min glib version.

my intention with the glib code will be to focus on converting bits of
code that allow us to eliminate gnulib modules.

About 50% of the gnulib stuff is related to the Windows portability
for sockets() and poll().  We can address this by integrate the
event loop with GMainLoop, and using GIO for its GSocket APIs.

The other gnulib stuff is a random bag of APIs. Some may be replaced
by glib APIs, for others we can pull the gnulib fix straight into
libvirt, for others the portability problems might be obsolete.

Daniel P. Berrangé (11):
  build: probe for glib-2 library in configure
  build: link to glib, gobject, gio libraries
  remote: don't pull anonymous enums into rpc protocol structs
  util: use glib memory allocation functions
  util: use glib string allocation/formatting functions
  util: use glib base64 encoding/decoding APIs
  util: convert virIdentity class to use GObject
  src: convert over to use GRegex for regular exprssions
  virsh: convert command line parsing to use GOptionContext
  virt-admin: convert command line parsing to use GOptionContext
  virt-login-shell: convert command line parsing to use GOptionContext

 bootstrap.conf                      |   5 -
 configure.ac                        |   2 +
 libvirt.spec.in                     |   1 +
 m4/virt-glib.m4                     |  36 ++++
 mingw-libvirt.spec.in               |   2 +
 src/Makefile.am                     |   5 +-
 src/access/viraccessdriverpolkit.c  |  21 +-
 src/admin/admin_server.c            |   3 +-
 src/admin_protocol-structs          |   9 -
 src/conf/domain_event.c             |  25 +--
 src/conf/virsecretobj.c             |  38 +---
 src/internal.h                      |   1 +
 src/libvirt_private.syms            |   1 -
 src/libxl/libxl_capabilities.c      |  44 ++--
 src/libxl/libxl_conf.c              |   3 +-
 src/lxc/Makefile.inc.am             |   2 +
 src/qemu/qemu_agent.c               |   9 +-
 src/qemu/qemu_command.c             |   5 +-
 src/qemu/qemu_domain.c              |   8 +-
 src/qemu/qemu_process.c             |   4 +-
 src/remote/Makefile.inc.am          |   1 +
 src/remote/remote_daemon.c          |   3 +-
 src/remote/remote_daemon_dispatch.c |  35 ++--
 src/remote_protocol-structs         |   9 -
 src/rpc/virnetserverclient.c        |  57 +++---
 src/rpc/virnetserverprogram.c       |  13 +-
 src/secret/secret_driver.c          |   1 -
 src/storage/storage_backend_rbd.c   |   4 +-
 src/util/Makefile.inc.am            |   1 +
 src/util/viralloc.c                 |  29 +--
 src/util/viridentity.c              |  87 ++++----
 src/util/viridentity.h              |   7 +-
 src/util/virstring.c                |  40 +---
 src/util/virstring.h                |   2 -
 tests/Makefile.am                   |   3 +-
 tests/viridentitytest.c             |  45 ++---
 tests/virnetserverclienttest.c      |   3 +-
 tools/Makefile.am                   |   1 +
 tools/virsh-secret.c                |  17 +-
 tools/virsh.c                       | 303 +++++++++++++---------------
 tools/virt-admin.c                  | 207 +++++++++----------
 tools/virt-login-shell-helper.c     |  66 ++----
 42 files changed, 495 insertions(+), 663 deletions(-)
 create mode 100644 m4/virt-glib.m4

-- 
2.21.0




More information about the libvir-list mailing list