On Thu, Mar 22, 2018 at 01:10:14PM +0100, Pavel Hrdina wrote: > On Wed, Mar 21, 2018 at 02:21:05PM +0000, Daniel P. Berrangé wrote: > > On Wed, Mar 21, 2018 at 11:02:43AM +0100, Pavel Hrdina wrote: > > > We will switch to GDBus implementation of D-Bus protocol because > > > sd-bus implementation is not thread safe. > > > > > > Processing messages in threads is essential since Libvirt API can > > > take some significant amount of time to return and that would block > > > the whole libvirt-dbus daemon. > > > > > > Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> > > > --- > > > > > > Changes in v3: > > > - fixed a bug while loading XML interface files, now it fails > > > gracefully with error message > > > > > > Changes in v2: > > > - changed glib2 required version to 2.44.0, required for the > > > auto-cleanup macros > > > - changed libvirt-glib required version to 0.0.7 > > > > > > README | 1 + > > > configure.ac | 12 ++ > > > data/Makefile.am | 5 + > > > libvirt-dbus.spec.in | 6 + > > > src/Makefile.am | 17 ++- > > > src/gdbus.c | 398 +++++++++++++++++++++++++++++++++++++++++++++++++++ > > > src/gdbus.h | 108 ++++++++++++++ > > > test/Makefile.am | 3 +- > > > test/travis-run | 2 +- > > > 9 files changed, 547 insertions(+), 5 deletions(-) > > > create mode 100644 src/gdbus.c > > > create mode 100644 src/gdbus.h > > > > > > diff --git a/README b/README > > > index 754d957..a85114e 100644 > > > --- a/README > > > +++ b/README > > > @@ -58,6 +58,7 @@ The packages required to build libvirt-dbus are > > > > > > - systemd-211 > > > - libvirt > > > + - glib2 > > > > > > Patches submissions > > > =================== > > > diff --git a/configure.ac b/configure.ac > > > index df1a375..0e3bc01 100644 > > > --- a/configure.ac > > > +++ b/configure.ac > > > @@ -11,10 +11,14 @@ AC_USE_SYSTEM_EXTENSIONS > > > > > > AM_SILENT_RULES([yes]) > > > > > > +GLIB2_REQUIRED=2.44.0 > > > LIBVIRT_REQUIRED=1.2.8 > > > SYSTEMD_REQUIRED=211 > > > +LIBVIRT_GLIB_REQUIRED=0.0.7 > > > +AC_SUBST([GLIB2_REQUIRED]) dnl used in the .spec file > > > AC_SUBST([LIBVIRT_REQUIRED]) dnl used in the .spec file > > > AC_SUBST([SYSTEMD_REQUIRED]) dnl used in the .spec file > > > +AC_SUBST([LIBVIRT_GLIB_REQUIRED]) dnl used in the .spec file > > > > > > LIBVIRT_DBUS_MAJOR_VERSION=`echo $VERSION | awk -F. '{print $1}'` > > > LIBVIRT_DBUS_MINOR_VERSION=`echo $VERSION | awk -F. '{print $2}'` > > > @@ -34,8 +38,11 @@ AC_PROG_MKDIR_P > > > AM_PROG_CC_C_O > > > AC_PROG_CC_STDC > > > > > > +PKG_CHECK_MODULES(GIO2, gio-unix-2.0 >= GLIB2_REQUIRED) > > > +PKG_CHECK_MODULES(GLIB2, glib-2.0 >= GLIB2_REQUIRED) > > > PKG_CHECK_MODULES(LIBVIRT, libvirt >= $LIBVIRT_REQUIRED) > > > PKG_CHECK_MODULES(SYSTEMD, libsystemd >= $SYSTEMD_REQUIRED) > > > +PKG_CHECK_MODULES(LIBVIRT_GLIB, libvirt-glib-1.0 >= LIBVIRT_GLIB_REQUIRED) > > > > > > LIBVIRT_COMPILE_WARNINGS > > > LIBVIRT_LINKER_RELRO > > > @@ -56,6 +63,11 @@ LIBVIRT_ARG_WITH([DBUS_SYSTEM_POLICIES], [where D-Bus system policies directory > > > DBUS_SYSTEM_POLICIES_DIR="$with_dbus_system_policies" > > > AC_SUBST(DBUS_SYSTEM_POLICIES_DIR) > > > > > > +LIBVIRT_ARG_WITH([DBUS_INTERFACES], [where D-Bus interfaces directory is], > > > + ['$(datadir)/dbus-1/interfaces']) > > > +DBUS_INTERFACES_DIR="$with_dbus_interfaces" > > > +AC_SUBST([DBUS_INTERFACES_DIR]) > > > > FYI, you can actually get the default value for this from > > pkg-config > > > > $ pkgconf --variable interfaces_dir dbus-1 > > /usr/share/dbus-1/interfaces > > > > And arguably don't need to make that configurable install dir > > at all with args. Not a blocker for this though, so fine if > > you patch that separately. > > > > You would need a BuildRequires on dbus-devel to get the pkgconfig > > file though. > > I was looking into it and the interfaces_dir variable was introduced > in dbus 1.9.2 which would not work on CentOS 7, where the dbus version > is 1.6.12. Moreover, they don't have variable for policies dir, so > it might be better to keep it like it is. Ok, makese sense. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list