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