mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2025-12-15 06:45:32 +01:00
libxml-libxml-perl: add recipe
This module is an interface to libxml2, providing XML and HTML parsers \ with DOM, SAX and XMLReader interfaces, a large subset of DOM Layer 3 \ interface and a XML::XPath-like interface to XPath API of libxml2. \ The module is split into several packages which are not described in this \ section; unless stated otherwise, you only need to use XML::LibXML; in \ your programs. Signed-off-by: Roy Li <rongqing.li@windriver.com> Acked-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
parent
764c5c0716
commit
743751e20c
|
|
@ -0,0 +1,79 @@
|
|||
Do not use the _libxml_check_lib() on cross-compile
|
||||
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
xml2 have been added into package's DEPENDS, so not need to use the
|
||||
_libxml_check_lib() to check it again, and _libxml_check_lib() always
|
||||
return false on cross-compile environment
|
||||
|
||||
Signed-off-by: Roy Li <rongqing.li@windriver.com>
|
||||
---
|
||||
Makefile.PL | 52 ++++++++++++++++++++++++++--------------------------
|
||||
1 file changed, 26 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/Makefile.PL b/Makefile.PL
|
||||
index c0485f1..09c676b 100644
|
||||
--- a/Makefile.PL
|
||||
+++ b/Makefile.PL
|
||||
@@ -411,32 +411,32 @@ sub _libxml_check_lib {
|
||||
}
|
||||
}
|
||||
|
||||
-print "Checking for ability to link against xml2...";
|
||||
-if ( _libxml_check_lib('xml2') ) {
|
||||
- print "yes\n";
|
||||
-}
|
||||
-else {
|
||||
- print "no\n";
|
||||
- print "Checking for ability to link against libxml2...";
|
||||
- if ( _libxml_check_lib('libxml2')) {
|
||||
- print "yes\n";
|
||||
- }
|
||||
- else {
|
||||
- print STDERR <<"DEATH";
|
||||
-libxml2, zlib, and/or the Math library (-lm) have not been found.
|
||||
-Try setting LIBS and INC values on the command line
|
||||
-Or get libxml2 from
|
||||
- http://xmlsoft.org/
|
||||
-If you install via RPMs, make sure you also install the -devel
|
||||
-RPMs, as this is where the headers (.h files) are.
|
||||
-
|
||||
-Also, you may try to run perl Makefile.PL with the DEBUG=1 parameter
|
||||
-to see the exact reason why the detection of libxml2 installation
|
||||
-failed or why Makefile.PL was not able to compile a test program.
|
||||
-DEATH
|
||||
- exit 0; # 0 recommended by http://cpantest.grango.org (Notes for CPAN Authors)
|
||||
- }
|
||||
-}
|
||||
+#print "Checking for ability to link against xml2...";
|
||||
+#if ( _libxml_check_lib('xml2') ) {
|
||||
+# print "yes\n";
|
||||
+#}
|
||||
+#else {
|
||||
+# print "no\n";
|
||||
+# print "Checking for ability to link against libxml2...";
|
||||
+# if ( _libxml_check_lib('libxml2')) {
|
||||
+# print "yes\n";
|
||||
+# }
|
||||
+# else {
|
||||
+# print STDERR <<"DEATH";
|
||||
+#libxml2, zlib, and/or the Math library (-lm) have not been found.
|
||||
+#Try setting LIBS and INC values on the command line
|
||||
+#Or get libxml2 from
|
||||
+# http://xmlsoft.org/
|
||||
+#If you install via RPMs, make sure you also install the -devel
|
||||
+#RPMs, as this is where the headers (.h files) are.
|
||||
+#
|
||||
+#Also, you may try to run perl Makefile.PL with the DEBUG=1 parameter
|
||||
+#to see the exact reason why the detection of libxml2 installation
|
||||
+#failed or why Makefile.PL was not able to compile a test program.
|
||||
+#DEATH
|
||||
+# exit 0; # 0 recommended by http://cpantest.grango.org (Notes for CPAN Authors)
|
||||
+# }
|
||||
+#}
|
||||
|
||||
# -------------------------------------------------------------------------- #
|
||||
# _NOW_ write the Makefile
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
[PATCH] Fix a compile error
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Fix a compile error by conditional using 'catal' since catal
|
||||
is only defined when LIBXML_CATALOG_ENABLED is enabled.
|
||||
|
||||
Signed-off-by: Roy Li <rongqing.li@windriver.com>
|
||||
---
|
||||
LibXML.xs | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/LibXML.xs b/LibXML.xs
|
||||
index 66da04b..45da681 100644
|
||||
--- a/LibXML.xs
|
||||
+++ b/LibXML.xs
|
||||
@@ -2777,9 +2777,11 @@ _default_catalog( self, catalog )
|
||||
xmlCatalogPtr catal = INT2PTR(xmlCatalogPtr,SvIV(SvRV(catalog)));
|
||||
#endif
|
||||
INIT:
|
||||
+#ifdef LIBXML_CATALOG_ENABLED
|
||||
if ( catal == NULL ) {
|
||||
croak( "empty catalog\n" );
|
||||
}
|
||||
+#endif
|
||||
CODE:
|
||||
warn( "this feature is not implemented" );
|
||||
RETVAL = 0;
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
[PATCH] Fix a compile error
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
by conditional using 'XML_DOCB_DOCUMENT_NODE' since it is only
|
||||
defined when LIBXML_DOCB_ENABLED is enabled in xmlversion.h.
|
||||
|
||||
Signed-off-by: Roy Li <rongqing.li@windriver.com>
|
||||
---
|
||||
LibXML.xs | 9 +-
|
||||
dom.c | 2 +
|
||||
perl-libxml-mm.c | 4 +
|
||||
4 files changed, 678 insertions(+), 658 deletions(-)
|
||||
|
||||
diff --git a/LibXML.xs b/LibXML.xs
|
||||
index b299ba4..66da04b 100644
|
||||
--- a/LibXML.xs
|
||||
+++ b/LibXML.xs
|
||||
@@ -5026,7 +5026,9 @@ addChild( self, nNode )
|
||||
XSRETURN_UNDEF;
|
||||
case XML_DOCUMENT_NODE :
|
||||
case XML_HTML_DOCUMENT_NODE :
|
||||
+#ifdef LIBXML_DOCB_ENABLED
|
||||
case XML_DOCB_DOCUMENT_NODE :
|
||||
+#endif
|
||||
croak("addChild: HIERARCHY_REQUEST_ERR\n");
|
||||
XSRETURN_UNDEF;
|
||||
case XML_NOTATION_NODE :
|
||||
@@ -5286,7 +5288,9 @@ _toStringC14N(self, comments=0, xpath=&PL_sv_undef, exclusive=0, inc_prefix_list
|
||||
if ( nodepath == NULL
|
||||
&& self->type != XML_DOCUMENT_NODE
|
||||
&& self->type != XML_HTML_DOCUMENT_NODE
|
||||
+#ifdef LIBXML_DOCB_ENABLED
|
||||
&& self->type != XML_DOCB_DOCUMENT_NODE
|
||||
+#endif
|
||||
) {
|
||||
if (comments)
|
||||
nodepath = xmlStrdup( (const xmlChar *) "(. | .//node() | .//@* | .//namespace::*)" );
|
||||
@@ -5297,7 +5301,10 @@ _toStringC14N(self, comments=0, xpath=&PL_sv_undef, exclusive=0, inc_prefix_list
|
||||
if ( nodepath != NULL ) {
|
||||
if ( self->type == XML_DOCUMENT_NODE
|
||||
|| self->type == XML_HTML_DOCUMENT_NODE
|
||||
- || self->type == XML_DOCB_DOCUMENT_NODE ) {
|
||||
+#ifdef LIBXML_DOCB_ENABLED
|
||||
+ || self->type == XML_DOCB_DOCUMENT_NODE
|
||||
+#endif
|
||||
+ ) {
|
||||
refNode = xmlDocGetRootElement( self->doc );
|
||||
}
|
||||
if (SvOK(xpath_context)) {
|
||||
diff --git a/dom.c b/dom.c
|
||||
index 87eb61d..cbd391b 100644
|
||||
--- a/dom.c
|
||||
+++ b/dom.c
|
||||
@@ -654,7 +654,9 @@ domName(xmlNodePtr node) {
|
||||
|
||||
case XML_DOCUMENT_NODE :
|
||||
case XML_HTML_DOCUMENT_NODE :
|
||||
+#ifdef LIBXML_DOCB_ENABLED
|
||||
case XML_DOCB_DOCUMENT_NODE :
|
||||
+#endif
|
||||
name = (const xmlChar *) "#document";
|
||||
break;
|
||||
|
||||
diff --git a/perl-libxml-mm.c b/perl-libxml-mm.c
|
||||
index d162b06..7ac5436 100644
|
||||
--- a/perl-libxml-mm.c
|
||||
+++ b/perl-libxml-mm.c
|
||||
@@ -331,7 +331,9 @@ PmmNewNode(xmlNodePtr node)
|
||||
switch ( node->type ) {
|
||||
case XML_DOCUMENT_NODE:
|
||||
case XML_HTML_DOCUMENT_NODE:
|
||||
+#ifdef LIBXML_DOCB_ENABLED
|
||||
case XML_DOCB_DOCUMENT_NODE:
|
||||
+#endif
|
||||
proxy = (ProxyNodePtr)xmlMalloc(sizeof(struct _DocProxyNode));
|
||||
if (proxy != NULL) {
|
||||
((DocProxyNodePtr)proxy)->psvi_status = Pmm_NO_PSVI;
|
||||
@@ -550,7 +552,9 @@ PmmNodeToSv( xmlNodePtr node, ProxyNodePtr owner )
|
||||
switch ( node->type ) {
|
||||
case XML_DOCUMENT_NODE:
|
||||
case XML_HTML_DOCUMENT_NODE:
|
||||
+#ifdef LIBXML_DOCB_ENABLED
|
||||
case XML_DOCB_DOCUMENT_NODE:
|
||||
+#endif
|
||||
if ( ((xmlDocPtr)node)->encoding != NULL ) {
|
||||
SetPmmENCODING(dfProxy, (int)xmlParseCharEncoding( (const char*)((xmlDocPtr)node)->encoding ));
|
||||
}
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
47
meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0116.bb
Normal file
47
meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0116.bb
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
SUMMARY = "Perl interface to the libxml2 library"
|
||||
DESCRIPTION = "This module is an interface to libxml2, providing XML and HTML parsers \
|
||||
with DOM, SAX and XMLReader interfaces, a large subset of DOM Layer 3 \
|
||||
interface and a XML::XPath-like interface to XPath API of libxml2. \
|
||||
The module is split into several packages which are not described in this \
|
||||
section; unless stated otherwise, you only need to use XML::LibXML; in \
|
||||
your programs."
|
||||
|
||||
HOMEPAGE = "http://search.cpan.org/dist/XML-LibXML-1.99/"
|
||||
SECTION = "libs"
|
||||
LICENSE = "Artistic-1.0|GPLv1+"
|
||||
DEPENDS += "libxml2 \
|
||||
libxml-sax-perl-native \
|
||||
zlib \
|
||||
"
|
||||
RDEPENDS_${PN} += "libxml2 \
|
||||
libxml-sax-perl \
|
||||
libxml-sax-base-perl \
|
||||
zlib \
|
||||
"
|
||||
|
||||
SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXML-${PV}.tar.gz;name=libxml \
|
||||
file://disable-libxml2-check.patch \
|
||||
file://fix-CATALOG-conditional-compile.patch \
|
||||
file://using-DOCB-conditional.patch \
|
||||
"
|
||||
LIC_FILES_CHKSUM = "file://debian/copyright;md5=75e021e35a906347f46c9ff163653e2a \
|
||||
file://LICENSE;md5=97871bde150daeb5e61ad95137ff2446"
|
||||
SRC_URI[libxml.md5sum] = "a53a743bf053a0cb4afb41513fb8a684"
|
||||
SRC_URI[libxml.sha256sum] = "b154f2dad3033b30d22ac81b8985b69ad35450b0c552db394cd03bb36845812a"
|
||||
|
||||
S = "${WORKDIR}/XML-LibXML-${PV}"
|
||||
|
||||
inherit cpan
|
||||
|
||||
EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR}/libxml2 LIBS=-L${STAGING_LIBDIR}"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
|
||||
CFLAGS += " -D_GNU_SOURCE "
|
||||
BUILD_CFLAGS += " -D_GNU_SOURCE "
|
||||
|
||||
do_configure_prepend() {
|
||||
rm -rf ${S}/.pc/*
|
||||
}
|
||||
|
||||
FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/XML/LibXML/.debug/"
|
||||
Loading…
Reference in New Issue
Block a user