Files
main/hardware/firewire/libffado/files/libxml++3.patch
T
2017-02-17 10:15:59 +03:00

252 lines
9.1 KiB
Diff

Index: /trunk/libffado/src/SConscript
===================================================================
--- /trunk/libffado/src/SConscript (revision 2590)
+++ /trunk/libffado/src/SConscript (revision 2650)
@@ -289,4 +289,7 @@
libenv.MergeFlags( env['LIBCONFIG_FLAGS'] )
if not env['SERIALIZE_USE_EXPAT']:
+ if 'LIBXML30_FLAGS' in env :
+ libenv.MergeFlags( env['LIBXML30_FLAGS'] )
+ if not('LIBXML30_FLAGS' in env) :
libenv.MergeFlags( env['LIBXML26_FLAGS'] )
else:
Index: /trunk/libffado/src/libutil/serialize_libxml.cpp
===================================================================
--- /trunk/libffado/src/libutil/serialize_libxml.cpp (revision 1763)
+++ /trunk/libffado/src/libutil/serialize_libxml.cpp (revision 2650)
@@ -76,9 +76,17 @@
Util::XMLSerialize::writeVersion()
{
+#if LIBXMLXX_MAJOR_VERSION == 3
+ xmlpp::Element* pElem = m_doc.get_root_node()->add_child_element( "CacheVersion" );
+#else
xmlpp::Node* pNode = m_doc.get_root_node();
xmlpp::Element* pElem = pNode->add_child( "CacheVersion" );
+#endif
char* valstr;
asprintf( &valstr, "%s", CACHE_VERSION );
+#if LIBXMLXX_MAJOR_VERSION == 3
+ pElem->set_first_child_text( valstr );
+#else
pElem->set_child_text( valstr );
+#endif
free( valstr );
}
@@ -100,12 +108,20 @@
}
- xmlpp::Node* pNode = m_doc.get_root_node();
+ xmlpp::Element* pNode = m_doc.get_root_node();
pNode = getNodePath( pNode, tokens );
// element to be added
+#if LIBXMLXX_MAJOR_VERSION == 3
+ xmlpp::Element* pElem = pNode->add_child_element( tokens[tokens.size() - 1] );
+#else
xmlpp::Element* pElem = pNode->add_child( tokens[tokens.size() - 1] );
+#endif
char* valstr;
asprintf( &valstr, "%lld", value );
+#if LIBXMLXX_MAJOR_VERSION == 3
+ pElem->set_first_child_text( valstr );
+#else
pElem->set_child_text( valstr );
+#endif
free( valstr );
@@ -128,16 +144,21 @@
}
- xmlpp::Node* pNode = m_doc.get_root_node();
+ xmlpp::Element* pNode = m_doc.get_root_node();
pNode = getNodePath( pNode, tokens );
// element to be added
+#if LIBXMLXX_MAJOR_VERSION == 3
+ xmlpp::Element* pElem = pNode->add_child_element( tokens[tokens.size() - 1] );
+ pElem->set_first_child_text( str );
+#else
xmlpp::Element* pElem = pNode->add_child( tokens[tokens.size() - 1] );
pElem->set_child_text( str );
+#endif
return true;
}
-xmlpp::Node*
-Util::XMLSerialize::getNodePath( xmlpp::Node* pRootNode,
+xmlpp::Element*
+Util::XMLSerialize::getNodePath( xmlpp::Element* pRootNode,
std::vector<string>& tokens )
{
@@ -150,5 +171,5 @@
unsigned int iTokenIdx = 0;
- xmlpp::Node* pCurNode = pRootNode;
+ xmlpp::Element* pCurNode = pRootNode;
for (bool bFound = false;
( iTokenIdx < tokens.size() - 1 );
@@ -161,5 +182,5 @@
{
if ( ( *it )->get_name() == tokens[iTokenIdx] ) {
- pCurNode = *it;
+ pCurNode = (xmlpp::Element*) *it;
bFound = true;
break;
@@ -172,5 +193,9 @@
for ( unsigned int i = iTokenIdx; i < tokens.size() - 1; i++, iTokenIdx++ ) {
+#if LIBXMLXX_MAJOR_VERSION == 3
+ pCurNode = pCurNode->add_child_element( tokens[iTokenIdx] );
+#else
pCurNode = pCurNode->add_child( tokens[iTokenIdx] );
+#endif
}
return pCurNode;
@@ -255,8 +280,15 @@
debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "pNode = %s\n", pNode->get_name().c_str() );
+#if LIBXMLXX_MAJOR_VERSION == 3
+ xmlpp::Node::NodeSet nodeSet = pNode->find( strMemberName );
+ for ( xmlpp::Node::NodeSet::iterator it = nodeSet.begin();
+ it != nodeSet.end();
+ ++it )
+#else
xmlpp::NodeSet nodeSet = pNode->find( strMemberName );
for ( xmlpp::NodeSet::iterator it = nodeSet.begin();
it != nodeSet.end();
++it )
+#endif
{
const xmlpp::Element* pElement =
@@ -264,6 +296,11 @@
if ( pElement && pElement->has_child_text() ) {
char* tail;
+#if LIBXMLXX_MAJOR_VERSION == 3
+ value = strtoll( pElement->get_first_child_text()->get_content().c_str(),
+ &tail, 0 );
+#else
value = strtoll( pElement->get_child_text()->get_content().c_str(),
&tail, 0 );
+#endif
debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "found %s = %lld\n",
strMemberName.c_str(), value );
@@ -291,13 +328,24 @@
xmlpp::Node* pNode = pDoc->get_root_node();
+#if LIBXMLXX_MAJOR_VERSION == 3
+ xmlpp::Node::NodeSet nodeSet = pNode->find( strMemberName );
+ for ( xmlpp::Node::NodeSet::iterator it = nodeSet.begin();
+ it != nodeSet.end();
+ ++it )
+#else
xmlpp::NodeSet nodeSet = pNode->find( strMemberName );
for ( xmlpp::NodeSet::iterator it = nodeSet.begin();
it != nodeSet.end();
++it )
+#endif
{
const xmlpp::Element* pElement = dynamic_cast< const xmlpp::Element* >( *it );
if ( pElement ) {
if ( pElement->has_child_text() ) {
+#if LIBXMLXX_MAJOR_VERSION == 3
+ str = pElement->get_first_child_text()->get_content();
+#else
str = pElement->get_child_text()->get_content();
+#endif
} else {
str = "";
@@ -323,5 +371,9 @@
}
xmlpp::Node* pNode = pDoc->get_root_node();
+#if LIBXMLXX_MAJOR_VERSION == 3
+ xmlpp::Node::NodeSet nodeSet = pNode->find( strMemberName );
+#else
xmlpp::NodeSet nodeSet = pNode->find( strMemberName );
+#endif
return nodeSet.size() > 0;
}
Index: /trunk/libffado/src/libutil/serialize_libxml.h
===================================================================
--- /trunk/libffado/src/libutil/serialize_libxml.h (revision 1154)
+++ /trunk/libffado/src/libutil/serialize_libxml.h (revision 2650)
@@ -81,5 +81,5 @@
DECLARE_DEBUG_MODULE;
- xmlpp::Node* getNodePath( xmlpp::Node* pRootNode,
+ xmlpp::Element* getNodePath( xmlpp::Element* pRootNode,
std::vector<std::string>& tokens );
};
Index: /trunk/libffado/tests/SConscript
===================================================================
--- /trunk/libffado/tests/SConscript (revision 2141)
+++ /trunk/libffado/tests/SConscript (revision 2650)
@@ -33,4 +33,7 @@
env.MergeFlags( env['LIBRAW1394_FLAGS'] )
if not env['SERIALIZE_USE_EXPAT']:
+ if 'LIBXML30_FLAGS' in env :
+ env.MergeFlags( env['LIBXML30_FLAGS'] )
+ if not('LIBXML30_FLAGS' in env) :
env.MergeFlags( env['LIBXML26_FLAGS'] )
else:
Index: /trunk/libffado/SConstruct
===================================================================
--- /trunk/libffado/SConstruct (revision 2628)
+++ /trunk/libffado/SConstruct (revision 2650)
@@ -277,5 +277,8 @@
if not env['SERIALIZE_USE_EXPAT']:
- pkgs['libxml++-2.6'] = '2.13.0'
+ if conf.CheckPKG('libxml++-3.0'):
+ pkgs['libxml++-3.0'] = '3.0.0'
+ if not('libxml++-3.0' in pkgs):
+ pkgs['libxml++-2.6'] = '2.13.0'
# Provide a way for users to compile newer libffado which will work
@@ -359,4 +362,6 @@
if conf.CheckPKG('libxml++-2.6 >= 2.39.1'):
env.Append(CXXFLAGS = '-std=gnu++11')
+ if conf.CheckPKG('libxml++-3.0 >= 3.0.0'):
+ env.Append(CXXFLAGS = '-std=gnu++11')
# Check for C99 lrint() and lrintf() functions used to convert from
Index: /trunk/libffado/support/tools/SConscript
===================================================================
--- /trunk/libffado/support/tools/SConscript (revision 2321)
+++ /trunk/libffado/support/tools/SConscript (revision 2650)
@@ -34,4 +34,7 @@
if not e.GetOption( "clean" ):
if not env['SERIALIZE_USE_EXPAT']:
+ if 'LIBXML30_FLAGS' in env :
+ e.MergeFlags( env['LIBXML30_FLAGS'] )
+ if not('LIBXML30_FLAGS' in env) :
e.MergeFlags( env['LIBXML26_FLAGS'] )
else:
Index: /trunk/libffado/support/firmware/SConscript
===================================================================
--- /trunk/libffado/support/firmware/SConscript (revision 2089)
+++ /trunk/libffado/support/firmware/SConscript (revision 2650)
@@ -34,5 +34,8 @@
env.MergeFlags( env['LIBIEC61883_FLAGS'] )
if not env['SERIALIZE_USE_EXPAT']:
- env.MergeFlags( env['LIBXML26_FLAGS'] )
+ if 'LIBXML30_FLAGS' in env :
+ env.MergeFlags( env['LIBXML30_FLAGS'] )
+ if not('LIBXML30_FLAGS' in env) :
+ env.MergeFlags( env['LIBXML26_FLAGS'] )
else:
env.PrependUnique( LIBS=["expat"] )
Index: /trunk/libffado/support/dbus/SConscript
===================================================================
--- /trunk/libffado/support/dbus/SConscript (revision 2165)
+++ /trunk/libffado/support/dbus/SConscript (revision 2650)
@@ -42,5 +42,8 @@
env.MergeFlags( env['LIBRAW1394_FLAGS'] )
if not env['SERIALIZE_USE_EXPAT']:
- env.MergeFlags( env['LIBXML26_FLAGS'] )
+ if 'LIBXML30_FLAGS' in env :
+ env.MergeFlags( env['LIBXML30_FLAGS'] )
+ if not('LIBXML30_FLAGS' in env) :
+ env.MergeFlags( env['LIBXML26_FLAGS'] )
else:
env.PrependUnique( LIBS=["expat"] )