summaryrefslogtreecommitdiffstats
path: root/daemon/configure.ac
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2009-11-20 14:10:06 +0000
committerRichard Jones <rjones@redhat.com>2009-11-20 18:03:36 +0000
commit2d9953097b6d3b71122d444a4550047e97aee009 (patch)
tree6737890f7e75cc83b635eccf2fb839b5cec3c616 /daemon/configure.ac
parent8fd7f255d611d2092a244c4a48c6b7b4529e98b1 (diff)
downloadlibguestfs-2d9953097b6d3b71122d444a4550047e97aee009.tar.gz
libguestfs-2d9953097b6d3b71122d444a4550047e97aee009.tar.xz
libguestfs-2d9953097b6d3b71122d444a4550047e97aee009.zip
availability: Add optional groups and implement guestfs_available call.
The current groups are defined very conservatively using the following criteria: (a) Would be impossible to implement on Windows because of sheer architectural differences (eg: mknod). (b) Already optional (augeas, inotify). (c) Not currently optional but not implemented on older RHEL and Debian releases (ntfs-3g.probe, scrub, zerofree). The optional groups I've defined according to these criteria are: . augeas . inotify . linuxfsuuid . linuxmodules . linuxxattrs . lvm2 . mknod . ntfs3g . scrub . selinux . zerofree (Note that these choices don't prevent us from adding more optional groups in future. On the other hand to avoid breaking ABIs we would not wish to change the above groups). The rest of this large commit is really just implementation: Each optional function is classified using Optional "group" flag in the generator. The daemon has to implement a function int optgroup_<name>_available (void); for each optional group. Some of these functions are fixed at compile time, and some do simple run-time tests. The do_available implementation in the daemon looks up the correct function in a table and runs it. We document the optional groups in the guestfs(3) man page. Also: I added a NOT_AVAILABLE macro in order to unify all the existing places where we had a message equivalent to "function __func__ is not available".
Diffstat (limited to 'daemon/configure.ac')
-rw-r--r--daemon/configure.ac24
1 files changed, 12 insertions, 12 deletions
diff --git a/daemon/configure.ac b/daemon/configure.ac
index a1f54a3b..c6d9d98f 100644
--- a/daemon/configure.ac
+++ b/daemon/configure.ac
@@ -133,7 +133,7 @@ AC_STRUCT_DIRENT_D_TYPE
dnl Check if stat has the required fields.
AC_STRUCT_ST_BLOCKS
AC_CHECK_MEMBER([struct stat.st_blksize],[
- AC_DEFINE([HAVE_STRUCT_STAT_ST_BLKSIZE],[1],[Define to 1 if 'st_blksize' is a member of 'struct stat'])])
+ AC_DEFINE([HAVE_STRUCT_STAT_ST_BLKSIZE],[1],[Define to 1 if 'st_blksize' is a member of 'struct stat'])])
dnl Check for Augeas (now optional).
AC_CHECK_LIB([augeas],[aug_match],[
@@ -164,17 +164,17 @@ AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
dnl Functions which may not be available in older distributions.
AC_CHECK_FUNCS([\
- futimens \
- getxattr \
- inotify_init1 \
- lgetxattr \
- listxattr \
- llistxattr \
- lsetxattr \
- lremovexattr \
- mknod \
- removexattr \
- setxattr])
+ futimens \
+ getxattr \
+ inotify_init1 \
+ lgetxattr \
+ listxattr \
+ llistxattr \
+ lsetxattr \
+ lremovexattr \
+ mknod \
+ removexattr \
+ setxattr])
dnl Headers.
AC_CHECK_HEADERS([\