]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
build: probe for glib-2 library in configure
authorDaniel P. Berrangé <berrange@redhat.com>
Tue, 30 Jul 2019 09:13:36 +0000 (10:13 +0100)
committerDaniel P. Berrangé <berrange@redhat.com>
Mon, 14 Oct 2019 09:54:42 +0000 (10:54 +0100)
Prepare for linking with glib by probing for it at configure
time. Per supported platforms target, the min glib versions on
relevant distros are:

  RHEL-8: 2.56.1
  RHEL-7: 2.50.3
  Debian (Buster): 2.58.3
  Debian (Stretch): 2.50.3
  OpenBSD (Ports): 2.58.3
  FreeBSD (Ports): 2.56.3
  OpenSUSE Leap 15: 2.54.3
  SLE12-SP2: 2.48.2
  Ubuntu (Xenial): 2.48.0
  macOS (Homebrew): 2.56.0

This suggests that a minimum glib of 2.48 is a reasonable target.
This aligns with the minimum version required by qemu too.

We must disable the bad-function-cast warning as various GLib APIs
and macros will trigger this.

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
.travis.yml
configure.ac
libvirt.spec.in
m4/virt-compile-warnings.m4
m4/virt-glib.m4 [new file with mode: 0644]
mingw-libvirt.spec.in

index e475af34cf66c5c47eb2b383b7376175ff3da4aa..478909d3bb21d63b6307992512f7181c74279654 100644 (file)
@@ -13,6 +13,7 @@ addons:
       - rpcgen
       - xz
       - yajl
+      - glib
 
 matrix:
   include:
index a43f294a1292db25c8e752c3eafa355d8a0b34cb..424f10719424d1c2b926ec4c7f68c8e37e0fc200 100644 (file)
@@ -311,6 +311,7 @@ LIBVIRT_CHECK_DLOPEN
 LIBVIRT_CHECK_FIREWALLD
 LIBVIRT_CHECK_FIREWALLD_ZONE
 LIBVIRT_CHECK_FUSE
+LIBVIRT_CHECK_GLIB
 LIBVIRT_CHECK_GLUSTER
 LIBVIRT_CHECK_GNUTLS
 LIBVIRT_CHECK_HAL
@@ -995,6 +996,7 @@ LIBVIRT_RESULT_DLOPEN
 LIBVIRT_RESULT_FIREWALLD
 LIBVIRT_RESULT_FIREWALLD_ZONE
 LIBVIRT_RESULT_FUSE
+LIBVIRT_RESULT_GLIB
 LIBVIRT_RESULT_GLUSTER
 LIBVIRT_RESULT_GNUTLS
 LIBVIRT_RESULT_HAL
index 7f5183f341f796d5c95210666534c4fb05666fa8..dcad08cb5fd0f2f6701bfeeda3964ef1c4371c3d 100644 (file)
@@ -273,6 +273,7 @@ BuildRequires: systemd-units
 %if %{with_libxl}
 BuildRequires: xen-devel
 %endif
+BuildRequires: glib2-devel >= 2.48
 BuildRequires: libxml2-devel
 BuildRequires: libxslt
 BuildRequires: readline-devel
index 4f9eee121c4232f3aaf609a156f5f9d491968e1b..1dbe1abe274ffbb4c4eb90c8d42c1305f0855e20 100644 (file)
@@ -67,6 +67,8 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
     # > to handle the code effectively.
     # Source: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
     dontwarn="$dontwarn -Wdisabled-optimization"
+    # Various valid glib APIs/macros trigger this warning
+    dontwarn="$dontwarn -Wbad-function-cast"
 
     # Broken in 6.0 and later
     #     https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69602
diff --git a/m4/virt-glib.m4 b/m4/virt-glib.m4
new file mode 100644 (file)
index 0000000..5a5bc19
--- /dev/null
@@ -0,0 +1,36 @@
+dnl The glib.so library
+dnl
+dnl Copyright (C) 2016 Red Hat, Inc.
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU Lesser General Public
+dnl License as published by the Free Software Foundation; either
+dnl version 2.1 of the License, or (at your option) any later version.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl Lesser General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU Lesser General Public
+dnl License along with this library.  If not, see
+dnl <http://www.gnu.org/licenses/>.
+dnl
+
+AC_DEFUN([LIBVIRT_ARG_GLIB], [
+  LIBVIRT_ARG_WITH([GLIB], [glib-2.0 location], [check])
+])
+
+AC_DEFUN([LIBVIRT_CHECK_GLIB],[
+  GLIB_REQUIRED=2.48.0
+
+  LIBVIRT_CHECK_PKG([GLIB], [glib-2.0], [$GLIB_REQUIRED])
+
+  if test "$with_glib" = "no" ; then
+    AC_MSG_ERROR([glib-2.0 >= $GLIB_REQUIRED is required for libvirt])
+  fi
+])
+
+AC_DEFUN([LIBVIRT_RESULT_GLIB], [
+  LIBVIRT_RESULT_LIB([GLIB])
+])
index a20c4b7d746af8d44ea3873a53043af30ff3eb56..c29f3eeed2b670f6f4a5690f2075e0ac254f6d1d 100644 (file)
@@ -52,6 +52,8 @@ BuildRequires:  mingw32-gcc
 BuildRequires:  mingw64-gcc
 BuildRequires:  mingw32-binutils
 BuildRequires:  mingw64-binutils
+BuildRequires:  mingw32-glib2 >= 2.48
+BuildRequires:  mingw64-glib2 >= 2.48
 BuildRequires:  mingw32-libgpg-error
 BuildRequires:  mingw64-libgpg-error
 BuildRequires:  mingw32-libgcrypt