From b67bc4ff0e9678dfc9ca057823d94a63aef2f14b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 3 Dec 2011 14:34:52 +0000 Subject: [PATCH] daemon: Use pkg-config to locate Augeas CFLAGS / libraries. Augeas 0.10 depends on libxml2, so this is now required in the appliance (in fact, it was already present). However this exposed two bugs: (1) In libguestfs we use a home-brewed recipe for Augeas flags, resulting in this error: /usr/include/augeas.h:24:25: fatal error: libxml/tree.h: No such file or directory (2) Augeas's own augeas.pc didn't include the libxml2 flags, so it was broken. This requires a patch to Augeas 0.10, see: https://www.redhat.com/archives/augeas-devel/2011-December/msg00008.html Change to using pkg-config to detect Augeas. It is still an optional library. Cherry picked from commit 615924abaa968398d6529529fa2f31ae23de825b and rebased for old libguestfs branches that had separate daemon/configure.ac. --- appliance/packagelist.in | 1 + daemon/Makefile.am | 3 ++- daemon/configure.ac | 23 +++++++++++++---------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/appliance/packagelist.in b/appliance/packagelist.in index 692f22a..ac08165 100644 --- a/appliance/packagelist.in +++ b/appliance/packagelist.in @@ -103,6 +103,7 @@ gawk grep gzip jfsutils +libxml2 lsof lvm2 module-init-tools diff --git a/daemon/Makefile.am b/daemon/Makefile.am index 8fb070f..1cfb9b7 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -165,6 +165,7 @@ guestfsd_SOURCES = \ guestfsd_LDADD = \ liberrnostring.a \ libprotocol.a \ + $(AUGEAS_LIBS) \ lib/libgnu.a \ $(GETADDRINFO_LIB) \ $(HOSTENT_LIB) \ @@ -175,4 +176,4 @@ guestfsd_LDADD = \ $(SERVENT_LIB) AM_CPPFLAGS = -I$(srcdir)/lib -Ilib -guestfsd_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) +guestfsd_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) $(AUGEAS_CFLAGS) diff --git a/daemon/configure.ac b/daemon/configure.ac index 7d817d7..1906917 100644 --- a/daemon/configure.ac +++ b/daemon/configure.ac @@ -144,16 +144,19 @@ AC_CHECK_PROG([GPERF],[gperf],[gperf],[no]) test "x$GPERF" = "xno" && AC_MSG_ERROR([gperf must be installed]) -dnl Check for Augeas (now optional). -AC_CHECK_LIB([augeas],[aug_match],[ - LIBS="-laugeas $LIBS" - have_augeas=yes - dnl Check for functions not available in earlier versions of Augeas. - AC_CHECK_FUNCS([aug_load aug_defvar aug_defnode]) - ],[have_augeas=no]) -if test "x$have_augeas" = "xyes"; then - AC_DEFINE([HAVE_AUGEAS],[1],[Define to 1 if you have Augeas]) -fi +dnl Check for Augeas (optional). +PKG_CHECK_MODULES([AUGEAS], [augeas], + [AC_SUBST([AUGEAS_CFLAGS]) + AC_SUBST([AUGEAS_LIBS]) + AC_DEFINE([HAVE_AUGEAS],[1],[Define to 1 if you have Augeas]) + + old_LIBS="$LIBS" + LIBS="$LIBS $AUGEAS_LIBS" + dnl Check for functions not available in earlier versions of Augeas. + AC_CHECK_FUNCS([aug_load aug_defvar aug_defnode]) + LIBS="$old_LIBS" + ], + [AC_MSG_WARN([augeas not found, some core features will be disabled])]) dnl Check for libselinux (optional). AC_CHECK_HEADERS([selinux/selinux.h]) -- 1.8.3.1