libvirt/m4
Eric Blake 318ea3cb77 storage: initial support for linking with libgfapi
We support gluster volumes in domain XML, so we also ought to
support them as a storage pool.  Besides, a future patch will
want to take advantage of libgfapi to handle the case of a
gluster device holding qcow2 rather than raw storage, and for
that to work, we need a storage backend that can read gluster
storage volume contents.  This sets up the framework.

Note that the new pool is named 'gluster' to match a
<disk type='network'><source protocol='gluster'> image source
already supported in a <domain>; it does NOT match the
<pool type='netfs'><source><target type='glusterfs'>,
since that uses a FUSE mount to a local file name rather than
a network name.

This and subsequent patches have been tested against glusterfs
3.4.1 (available on Fedora 19); there are likely bugs in older
versions that may prevent decent use of gfapi, so this patch
enforces the minimum version tested.  A future patch may lower
the minimum.  On the other hand, I hit at least two bugs in
3.4.1 that will be fixed in 3.5/3.4.2, where it might be worth
raising the minimum: glfs_readdir is nicer to use than
glfs_readdir_r [1], and glfs_fini should only return failure on
an actual failure [2].

[1] http://lists.gnu.org/archive/html/gluster-devel/2013-10/msg00085.html
[2] http://lists.gnu.org/archive/html/gluster-devel/2013-10/msg00086.html

* configure.ac (WITH_STORAGE_GLUSTER): New conditional.
* m4/virt-gluster.m4: new file.
* libvirt.spec.in (BuildRequires): Support gluster in spec file.
* src/conf/storage_conf.h (VIR_STORAGE_POOL_GLUSTER): New pool
type.
* src/conf/storage_conf.c (poolTypeInfo): Treat similar to
sheepdog and rbd.
(virStoragePoolDefFormat): Don't output target for gluster.
* src/storage/storage_backend_gluster.h: New file.
* src/storage/storage_backend_gluster.c: Likewise.
* po/POTFILES.in: Add new file.
* src/storage/storage_backend.c (backends): Register new type.
* src/Makefile.am (STORAGE_DRIVER_GLUSTER_SOURCES): Build new files.
* src/storage/storage_backend.h (_virStorageBackend): Documet
assumption.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-11-25 11:02:52 -07:00
..
virt-apparmor.m4 build: avoid obsolete AC_HELP_STRING 2013-09-09 13:27:49 -06:00
virt-attr.m4 Add a test suite for validating SELinux labelling 2013-01-14 13:40:04 +00:00
virt-audit.m4 Convert audit check to use LIBVIRT_CHECK_LIB 2013-01-11 11:03:23 +00:00
virt-avahi.m4 Convert avahi check to use LIBVIRT_CHECK_PKG 2013-01-14 13:26:46 +00:00
virt-blkid.m4 Convert blkid check over to use LIBVIRT_CHECK_PKG 2013-01-14 13:26:47 +00:00
virt-capng.m4 Convert cap-ng check to use LIBVIRT_CHECK_LIB 2013-01-14 13:25:06 +00:00
virt-compile-pie.m4 Don't enable -fPIE on Win32 platforms 2013-04-15 17:35:30 +01:00
virt-compile-warnings.m4 Remove python binding 2013-11-25 16:08:00 +00:00
virt-curl.m4 Fix typo LIBCURL_{CFLAGS,LIBS} to CURL_{CFLAGS,LIBS} 2013-01-14 17:22:31 +00:00
virt-dbus.m4 Fix typo in configure.ac causing $LIBS to gain a copy of $CFLAGS 2013-02-05 18:04:16 +00:00
virt-fuse.m4 Convert fuse check over to use LIBVIRT_CHECK_PKG 2013-01-14 13:29:17 +00:00
virt-gluster.m4 storage: initial support for linking with libgfapi 2013-11-25 11:02:52 -07:00
virt-hal.m4 Convert HAL check to use LIBVIRT_CHECK_PKG 2013-01-14 13:26:47 +00:00
virt-lib.m4 build: fix regression in requiring yajl for new enough qemu 2013-09-10 12:03:19 -06:00
virt-linker-no-indirect.m4 Check for --no-copy-dt-needed linker flag 2013-08-22 16:17:36 +02:00
virt-linker-relro.m4 Simplify RELRO_LDFLAGS 2013-08-22 16:17:35 +02:00
virt-netcf.m4 Convert netcf check to use LIBVIRT_CHECK_PKG 2013-01-14 13:25:40 +00:00
virt-numactl.m4 Convert numactl checks to use LIBVIRT_CHECK_LIB 2013-01-14 13:25:06 +00:00
virt-openwsman.m4 Convert openwsman check to use LIBVIRT_CHECK_PKG 2013-01-14 13:29:54 +00:00
virt-pciaccess.m4 Convert udev/pciaccess checks to use LIBVIRT_CHECK_PKG 2013-01-14 13:26:47 +00:00
virt-pkgconfig-back-compat.m4 Remove acinclude.m4 file 2011-04-05 11:39:44 +01:00
virt-readline.m4 build: add configure --without-readline 2013-10-07 08:39:47 -06:00
virt-result.m4 Add some autoconf helper macros for checking for libraries 2013-01-11 11:03:22 +00:00
virt-sanlock.m4 Convert sanlock check to use LIBVIRT_CHECK_LIB 2013-01-11 11:03:23 +00:00
virt-sasl.m4 Convert sasl check to use LIBVIRT_CHECK_LIB_ALT 2013-01-11 11:03:23 +00:00
virt-selinux.m4 build: avoid obsolete AC_HELP_STRING 2013-09-09 13:27:49 -06:00
virt-ssh2.m4 Convert ssh2 check to use LIBVIRT_CHECK_PKG 2013-01-14 13:29:44 +00:00
virt-udev.m4 maint: typo fix 2013-01-14 09:33:48 -07:00
virt-yajl.m4 Convert yajl check to use LIBVIRT_CHECK_LIB_ALT 2013-01-11 11:03:23 +00:00