[oe] Patch to fix libxml++ build failure in meta-oe

Lewis, Nick nick.lewis at usa.g4s.com
Mon Jan 6 12:19:25 UTC 2014


The libxml++ recipe does not appear to build due to an incompatibility of libxml++ 2.35.3 with newer versions of make. libxml++ 2.37.1 contains a fix for this problem. Please find below a patch that changes the name of the recipe to meta-oe/recipes-core/libxml/libxml++_2.37.1.bb to fetch this version and amends the checksums to suit. It also adds ptest support.


Signed-off-by: Nick Lewis <nick.lewis at usa.g4s.com>



diff --git a/meta-oe/recipes-core/libxml/libxml++-2.37.1/libxml++_ptest.patch b/meta-oe/recipes-core/libxml/libxml++-2.37.1/libxml++_ptest.patch
new file mode 100644
index 0000000..a18822f
--- /dev/null
+++ b/meta-oe/recipes-core/libxml/libxml++-2.37.1/libxml++_ptest.patch
@@ -0,0 +1,73 @@
+diff --git a/Makefile.am b/Makefile.am
+index d4aadb1..0e36756 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -253,5 +253,8 @@ post-html: docs/index.html
+       rsync $(rsync_args) -r docs/index.html $$USER,libxmlplusplus at web.sourceforge.net:$(web_path_project)
+       rsync $(rsync_args) -r examples $$USER,libxmlplusplus at web.sourceforge.net:$(web_path_project)
+
++install-ptest:
++      make -C examples install-ptest
++
+ # Optional: auto-generate the ChangeLog file from the git log on make dist
+ include $(top_srcdir)/macros/dist-changelog.am
+diff --git a/examples/Makefile.am b/examples/Makefile.am
+index d9541ca..c28b49c 100644
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -36,6 +36,23 @@ check_PROGRAMS = \
+   schemavalidation/schemavalidation \
+   textreader/textreader
+
++check_DOTLIBS = \
++  dom_build/.libs/dom_build \
++  dom_parse_entities/.libs/dom_parse_entities \
++  dom_parser/.libs/dom_parser \
++  dom_parser_raw/.libs/dom_parser_raw \
++  dom_read_write/.libs/dom_read_write \
++  dom_xinclude/.libs/dom_xinclude \
++  dom_xpath/.libs/dom_xpath \
++  dtdvalidation/.libs/dtdvalidation \
++  import_node/.libs/import_node \
++  sax_exception/.libs/sax_exception \
++  sax_parser/.libs/sax_parser \
++  sax_parser_build_dom/.libs/sax_parser_build_dom \
++  sax_parser_entities/.libs/sax_parser_entities \
++  schemavalidation/.libs/schemavalidation \
++  textreader/.libs/textreader
++
+ # Shell scripts that call the example programs.
+ check_SCRIPTS = \
+   dom_build/make_check.sh \
+@@ -147,10 +164,10 @@ dist_noinst_DATA = \
+ # file are located in different directories.
+ dom_read_write/make_check.sh: Makefile
+       echo '# Generated and used by "make check"' >$@
+-      echo 'dom_read_write/dom_read_write "$(srcdir)/dom_read_write/example.xml" dom_read_write/example_output.xml >/dev/null' >>$@
++      echo 'dom_read_write/.libs/dom_read_write "$(srcdir)/dom_read_write/example.xml" dom_read_write/example_output.xml >/dev/null' >>$@
+       chmod +x $@
+
+-script_template = cd "$(srcdir)/<!progname!>" && "$(abs_builddir)/<!progname!>/<!progname!>" >/dev/null
++script_template = cd "$(srcdir)/<!progname!>" && ".libs/<!progname!>" >/dev/null
+ standard_scripts = $(filter-out dom_read_write/make_check.sh,$(check_SCRIPTS))
+
+ # All other script files are generated like so:
+@@ -162,3 +179,18 @@ $(standard_scripts): Makefile
+ CLEANFILES = \
+   dom_read_write/example_output.xml \
+   $(check_SCRIPTS)
++
++buildtest: all
++      $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS)
++      $(MAKE) $(AM_MAKEFLAGS) buildtest-TESTS
++
++install-ptest:
++      $(MKDIR_P) $(DESTDIR)/examples
++      cp --parents $(check_DOTLIBS) $(DESTDIR)/examples
++      cp --parents $(check_SCRIPTS) $(DESTDIR)/examples
++      cp --parents $(dist_noinst_DATA) $(DESTDIR)/examples
++      cp Makefile $(DESTDIR)/examples
++      $(MKDIR_P) $(DESTDIR)/macros
++      cp ../macros/test-driver $(DESTDIR)/macros
++      sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/examples/Makefile
++
diff --git a/meta-oe/recipes-core/libxml/libxml++-2.37.1/run-ptest b/meta-oe/recipes-core/libxml/libxml++-2.37.1/run-ptest
new file mode 100644
index 0000000..236f667
--- /dev/null
+++ b/meta-oe/recipes-core/libxml/libxml++-2.37.1/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd examples
+make -k check-TESTS
diff --git a/meta-oe/recipes-core/libxml/libxml++_2.35.3.bb b/meta-oe/recipes-core/libxml/libxml++_2.35.3.bb
deleted file mode 100644
index fb9cdd9..0000000
--- a/meta-oe/recipes-core/libxml/libxml++_2.35.3.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "C++ wrapper for libxml library"
-DESCRIPTION = "C++ wrapper for libxml library"
-HOMEPAGE = "http://libxmlplusplus.sourceforge.net"
-BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml%2B%2B"
-SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 "
-
-PR = "r1"
-
-SHRT_VER = "${@d.getVar('PV',True).split('.')[0]}.${@d.getVar('PV',True).split('.')[1]}"
-SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BP}.tar.xz"
-
-SRC_URI[md5sum] = "196a2dcdc84ab987fe3852b3f29cafd7"
-SRC_URI[sha256sum] = "715a4214bbff90365cc8406a28e427febd90461006d608fbdcdcea7fc9891eaf"
-
-DEPENDS = "libxml2 glibmm"
-
-inherit autotools pkgconfig
-
-FILES_${PN}-doc += "${datadir}/devhelp"
-FILES_${PN}-dev += "${libdir}/libxml++-2.6/include/libxml++config.h"
diff --git a/meta-oe/recipes-core/libxml/libxml++_2.37.1.bb b/meta-oe/recipes-core/libxml/libxml++_2.37.1.bb
new file mode 100644
index 0000000..604877d
--- /dev/null
+++ b/meta-oe/recipes-core/libxml/libxml++_2.37.1.bb
@@ -0,0 +1,34 @@
+SUMMARY = "C++ wrapper for libxml library"
+DESCRIPTION = "C++ wrapper for libxml library"
+HOMEPAGE = "http://libxmlplusplus.sourceforge.net"
+BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml%2B%2B"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 "
+
+PR = "r0"
+
+SHRT_VER = "${@d.getVar('PV',True).split('.')[0]}.${@d.getVar('PV',True).split('.')[1]}"
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BP}.tar.xz"
+
+SRC_URI[md5sum] = "2f9372a6eba6e40206c11f558a8fbc32"
+SRC_URI[sha256sum] = "f3b183600532a92af355719210223f858857092b8b1531c7907155c59a6db39f"
+
+DEPENDS = "libxml2 glibmm"
+
+inherit autotools pkgconfig
+
+FILES_${PN}-doc += "${datadir}/devhelp"
+FILES_${PN}-dev += "${libdir}/libxml++-2.6/include/libxml++config.h"
+
+SRC_URI += "file://libxml++_ptest.patch \
+            file://run-ptest"
+
+inherit ptest
+
+RDEPENDS_${PN}-ptest += "make"
+
+do_compile_ptest() {
+  oe_runmake -C examples buildtest
+}
+



--

Nick Lewis
nick.lewis at usa.g4s.com
+44 1684 277137
www.g4stechnology.com
New Challenge House, International Drive, Tewkesbury, Gloucestershire, GL20 8UQ, UK

 Please consider the environment before printing this email



The details of this company are as follows:
G4S Technology Limited, Registered Office: Challenge House, International Drive, Tewkesbury, Gloucestershire GL20 8UQ, Registered in England No. 2382338.

This communication may contain information which is confidential, personal and/or privileged.

It is for the exclusive use of the intended recipient(s).
If you are not the intended recipient(s), please note that any distribution, forwarding, copying or use of this communication or the information in it is strictly prohibited.

Any personal views expressed in this e-mail are those of the individual sender and the company does not endorse or accept responsibility for them.

Prior to taking any action based upon this e-mail message, you should seek appropriate confirmation of its authenticity.

This e-mail has been scanned for all viruses by MessageLabs.


More information about the Openembedded-devel mailing list