[libguestfs] - Add upstream patch to fix Augeas library detection. - Appliance explicitly requires libxml2 (becau

Richard W.M. Jones rjones at fedoraproject.org
Sat Dec 3 14:42:11 UTC 2011


commit a53be8ee9fc216542eb4e4dec49be33c201767d1
Author: Richard W.M. Jones <rjones at redhat.com>
Date:   Sat Dec 3 14:41:58 2011 +0000

    - Add upstream patch to fix Augeas library detection.
    - Appliance explicitly requires libxml2 (because Augeas >= 0.10 requires it),
      although it was implicitly included already.

 ...pkg-config-to-locate-Augeas-CFLAGS-librar.patch |  102 ++++++++++++++++++++
 libguestfs.spec                                    |   14 +++-
 2 files changed, 114 insertions(+), 2 deletions(-)
---
diff --git a/0001-daemon-Use-pkg-config-to-locate-Augeas-CFLAGS-librar.patch b/0001-daemon-Use-pkg-config-to-locate-Augeas-CFLAGS-librar.patch
new file mode 100644
index 0000000..7d872b7
--- /dev/null
+++ b/0001-daemon-Use-pkg-config-to-locate-Augeas-CFLAGS-librar.patch
@@ -0,0 +1,102 @@
+From 615924abaa968398d6529529fa2f31ae23de825b Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones at redhat.com>
+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.
+---
+ appliance/packagelist.in |    1 +
+ configure.ac             |   29 +++++++++++++----------------
+ daemon/Makefile.am       |    4 ++--
+ 3 files changed, 16 insertions(+), 18 deletions(-)
+
+diff --git a/appliance/packagelist.in b/appliance/packagelist.in
+index 9b723d0..550ba8b 100644
+--- a/appliance/packagelist.in
++++ b/appliance/packagelist.in
+@@ -105,6 +105,7 @@ gawk
+ grep
+ gzip
+ jfsutils
++libxml2
+ lsof
+ lvm2
+ lzop
+diff --git a/configure.ac b/configure.ac
+index 6e67eb0..19eb601 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -315,22 +315,19 @@ AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
+         AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
+         ])
+ 
+-dnl Check for Augeas (now optional).
+-AC_CHECK_LIB([augeas],[aug_match],[
+-        have_augeas=yes
+-        AUGEAS_LIB="-laugeas"
+-
+-        old_LIBS="$LIBS"
+-        LIBS="$LIBS $AUGEAS_LIB"
+-        dnl Check for functions not available in earlier versions of Augeas.
+-        AC_CHECK_FUNCS([aug_load aug_defvar aug_defnode])
+-        LIBS="$old_LIBS"
+-
+-        ],[have_augeas=no])
+-if test "x$have_augeas" = "xyes"; then
+-        AC_DEFINE([HAVE_AUGEAS],[1],[Define to 1 if you have Augeas])
+-fi
+-AC_SUBST([AUGEAS_LIB])
++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])
+diff --git a/daemon/Makefile.am b/daemon/Makefile.am
+index 71d6a63..a19a157 100644
+--- a/daemon/Makefile.am
++++ b/daemon/Makefile.am
+@@ -166,7 +166,7 @@ guestfsd_LDADD = \
+ 	liberrnostring.a \
+ 	libprotocol.a \
+ 	$(SELINUX_LIB) \
+-	$(AUGEAS_LIB) \
++	$(AUGEAS_LIBS) \
+ 	$(top_builddir)/gnulib/lib/.libs/libgnu.a \
+ 	$(GETADDRINFO_LIB) \
+ 	$(HOSTENT_LIB) \
+@@ -177,6 +177,6 @@ guestfsd_LDADD = \
+ 	$(SERVENT_LIB)
+ 
+ guestfsd_CPPFLAGS = -I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib
+-guestfsd_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
++guestfsd_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) $(AUGEAS_CFLAGS)
+ 
+ .PHONY: force
+-- 
+1.7.6
+
diff --git a/libguestfs.spec b/libguestfs.spec
index 4c587eb..c51fc83 100644
--- a/libguestfs.spec
+++ b/libguestfs.spec
@@ -30,13 +30,16 @@ Summary:       Access and modify virtual machine disk images
 Name:          libguestfs
 Epoch:         1
 Version:       1.15.9
-Release:       1%{?dist}
+Release:       2%{?dist}
 License:       LGPLv2+
 Group:         Development/Libraries
 URL:           http://libguestfs.org/
 Source0:       http://libguestfs.org/download/1.15-development/%{name}-%{version}.tar.gz
 BuildRoot:     %{_tmppath}/%{name}-%{version}-%{release}-root
 
+# Upstream patch to fix Augeas library detection.
+Patch0:        0001-daemon-Use-pkg-config-to-locate-Augeas-CFLAGS-librar.patch
+
 %if 0%{?rhel} >= 7
 ExclusiveArch: x86_64
 %endif
@@ -100,6 +103,7 @@ BuildRequires: iputils
 BuildRequires: jfsutils
 BuildRequires: kernel
 BuildRequires: libselinux
+BuildRequires: libxml2
 BuildRequires: lsof
 BuildRequires: lvm2
 BuildRequires: lzop
@@ -154,6 +158,7 @@ Requires:      iputils
 Requires:      jfsutils
 Requires:      kernel
 Requires:      libselinux
+Requires:      libxml2
 Requires:      lsof
 Requires:      lvm2
 Requires:      lzop
@@ -586,6 +591,8 @@ for %{name}.
 %prep
 %setup -q
 
+%patch0 -p1
+
 mkdir -p daemon/m4
 
 # Replace developer-specific README that ships with libguestfs, with
@@ -961,8 +968,11 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
-* Sat Dec  3 2011 Richard W.M. Jones <rjones at redhat.com> - 1:1.15.9-1
+* Sat Dec  3 2011 Richard W.M. Jones <rjones at redhat.com> - 1:1.15.9-2
 - New upstream version 1.15.9.
+- Add upstream patch to fix Augeas library detection.
+- Appliance explicitly requires libxml2 (because Augeas >= 0.10 requires it),
+  although it was implicitly included already.
 
 * Tue Nov 29 2011 Richard W.M. Jones <rjones at redhat.com> - 1:1.15.8-1
 - New upstream version 1.15.8.


More information about the scm-commits mailing list