summaryrefslogtreecommitdiff
path: root/recipes/opensync
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/opensync')
-rw-r--r--recipes/opensync/libopensync-0.36/build-in-src.patch18
-rw-r--r--recipes/opensync/libopensync-0.36/cmake.patch18
-rw-r--r--recipes/opensync/libopensync-0.36/no-python-check.patch18
-rw-r--r--recipes/opensync/libopensync-plugin-evo2-sync_0.22.bb6
-rw-r--r--recipes/opensync/libopensync-plugin-evo2-sync_svn.bb8
-rw-r--r--recipes/opensync/libopensync-plugin-evolution2_0.36.bb3
-rw-r--r--recipes/opensync/libopensync-plugin-file-sync_0.22.bb2
-rw-r--r--recipes/opensync/libopensync-plugin-file-sync_svn.bb5
-rw-r--r--recipes/opensync/libopensync-plugin-file_0.18.bb17
-rw-r--r--recipes/opensync/libopensync-plugin-file_0.36.bb1
-rw-r--r--recipes/opensync/libopensync-plugin-google-calendar_0.36.bb1
-rw-r--r--recipes/opensync/libopensync-plugin-gpe_0.18.bb18
-rw-r--r--recipes/opensync/libopensync-plugin-irmc-sync_0.22.bb4
-rw-r--r--recipes/opensync/libopensync-plugin-irmc_0.18.bb18
-rw-r--r--recipes/opensync/libopensync-plugin-irmc_0.36.bb3
-rw-r--r--recipes/opensync/libopensync-plugin-syncml-client-plugin-0.1/missing-syncml-config.patch8
-rw-r--r--recipes/opensync/libopensync-plugin-syncml-client-plugin-0.1/syncml-client-plugin-cpp.patch11
-rw-r--r--recipes/opensync/libopensync-plugin-syncml-client-plugin_0.1.bb13
-rw-r--r--recipes/opensync/libopensync-plugin-syncml-plugin.bb16
-rw-r--r--recipes/opensync/libopensync-plugin-syncml_0.22.bb13
-rw-r--r--recipes/opensync/libopensync-plugin-syncml_0.36.bb3
-rw-r--r--recipes/opensync/libopensync-plugin-vformat_0.36.bb3
-rw-r--r--recipes/opensync/libopensync-plugin.inc24
-rw-r--r--recipes/opensync/libopensync-plugin_0.22.inc12
-rw-r--r--recipes/opensync/libopensync-plugin_0.36.inc9
-rw-r--r--recipes/opensync/libopensync/.mtn2git_empty0
-rw-r--r--recipes/opensync/libopensync_0.18.bb18
-rw-r--r--recipes/opensync/libopensync_0.20.bb18
-rw-r--r--recipes/opensync/libopensync_0.22.bb21
-rw-r--r--recipes/opensync/libopensync_0.36.bb26
-rw-r--r--recipes/opensync/libopensync_svn.bb20
-rw-r--r--recipes/opensync/libsyncml/.mtn2git_empty0
-rw-r--r--recipes/opensync/libsyncml_0.4.0.bb34
-rw-r--r--recipes/opensync/libsyncml_0.4.6.bb18
-rw-r--r--recipes/opensync/libsyncml_svn.bb35
-rw-r--r--recipes/opensync/msynctool_0.22.bb9
-rw-r--r--recipes/opensync/msynctool_0.36.bb7
-rw-r--r--recipes/opensync/msynctool_svn.bb10
-rw-r--r--recipes/opensync/multisync_0.90.18.bb10
-rw-r--r--recipes/opensync/opensync-unpack.inc5
-rw-r--r--recipes/opensync/syncml-client-0.1/syncml-client-pc-in-cross.patch10
-rw-r--r--recipes/opensync/syncml-client-0.1/syncml-client-plugin-h.patch11
-rw-r--r--recipes/opensync/syncml-client_0.1.bb14
-rw-r--r--recipes/opensync/wbxml2/00-fix-includes.patch24
-rw-r--r--recipes/opensync/wbxml2/01-anonymous-support-and-misc-fixes.patch304
-rw-r--r--recipes/opensync/wbxml2/02-namespaces.patch164
-rw-r--r--recipes/opensync/wbxml2/04_saxlike_entity_parsing.patch90
-rw-r--r--recipes/opensync/wbxml2/05-syncml-fixes.patch124
-rw-r--r--recipes/opensync/wbxml2/06-no-install-docs.patch14
-rw-r--r--recipes/opensync/wbxml2/07-current_attr_null.patch22
-rw-r--r--recipes/opensync/wbxml2/08-maxsize-translation-table.patch17
-rw-r--r--recipes/opensync/wbxml2_0.9.2.bb29
52 files changed, 1306 insertions, 0 deletions
diff --git a/recipes/opensync/libopensync-0.36/build-in-src.patch b/recipes/opensync/libopensync-0.36/build-in-src.patch
new file mode 100644
index 0000000000..1810b339a6
--- /dev/null
+++ b/recipes/opensync/libopensync-0.36/build-in-src.patch
@@ -0,0 +1,18 @@
+---
+ cmake/OpenSyncInternal.cmake.in | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- libopensync-0.36.orig/cmake/OpenSyncInternal.cmake.in
++++ libopensync-0.36/cmake/OpenSyncInternal.cmake.in
+@@ -5,11 +5,10 @@ INCLUDE( OpenSyncTesting )
+ INCLUDE( OpenSyncPackaging )
+ INCLUDE( OpenSyncPlugin )
+ INCLUDE( OpenSyncPlatforms )
+ INCLUDE( MacroEnsureOutOfSourceBuild )
+
+-MACRO_ENSURE_OUT_OF_SOURCE_BUILD("${CMAKE_PROJECT_NAME} doesn't allow to build within the source directory. Please, create a seperate build directory and run 'cmake ${PROJECT_SOURCE_DIR} [options]'!")
+
+
+ SET( OPENSYNC_PLUGINDIR "@OPENSYNC_PLUGINDIR@" )
+ SET( OPENSYNC_FORMATSDIR "@OPENSYNC_FORMATSDIR@" )
+ SET( OPENSYNC_PYTHON_PLUGINDIR "@OPENSYNC_PYTHON_PLUGINDIR@" )
diff --git a/recipes/opensync/libopensync-0.36/cmake.patch b/recipes/opensync/libopensync-0.36/cmake.patch
new file mode 100644
index 0000000000..0884e4cb79
--- /dev/null
+++ b/recipes/opensync/libopensync-0.36/cmake.patch
@@ -0,0 +1,18 @@
+---
+ opensync/CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- libopensync-0.36.orig/opensync/CMakeLists.txt
++++ libopensync-0.36/opensync/CMakeLists.txt
+@@ -55,11 +55,10 @@ SET( libopensync_LIB_SRCS
+ ADD_LIBRARY( opensync SHARED ${libopensync_LIB_SRCS} )
+
+ TARGET_LINK_LIBRARIES( opensync ${GLIB2_LIBRARIES} ${GTHREAD2_LIBRARIES} ${GMODULE2_LIBRARIES} ${LIBXML2_LIBRARIES} ${SQLITE3_LIBRARIES} )
+
+ SET_TARGET_PROPERTIES( opensync PROPERTIES VERSION 1.0.0 SOVERSION 1 )
+-SET_TARGET_PROPERTIES( opensync PROPERTIES LINK_FLAGS ${SYMBOLS_VISIBILITY} )
+
+ IF ( OPENSYNC_UNITTESTS )
+ ADD_LIBRARY( opensync-testing SHARED ${libopensync_LIB_SRCS} )
+ TARGET_LINK_LIBRARIES( opensync-testing ${GLIB2_LIBRARIES} ${GTHREAD2_LIBRARIES} ${GMODULE2_LIBRARIES} ${LIBXML2_LIBRARIES} ${SQLITE3_LIBRARIES} )
+ ENDIF ( OPENSYNC_UNITTESTS )
diff --git a/recipes/opensync/libopensync-0.36/no-python-check.patch b/recipes/opensync/libopensync-0.36/no-python-check.patch
new file mode 100644
index 0000000000..08a53cb9eb
--- /dev/null
+++ b/recipes/opensync/libopensync-0.36/no-python-check.patch
@@ -0,0 +1,18 @@
+---
+ CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- libopensync-0.36.orig/CMakeLists.txt
++++ libopensync-0.36/CMakeLists.txt
+@@ -26,11 +26,10 @@ INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BIN
+
+ FIND_PACKAGE( GLIB2 REQUIRED )
+ FIND_PACKAGE( Sqlite3 REQUIRED )
+ FIND_PACKAGE( LibXml2 REQUIRED )
+ FIND_PACKAGE( SWIG )
+-FIND_PACKAGE( PythonLibs )
+ FIND_PACKAGE( Check )
+
+ ADD_SUBDIRECTORY( opensync )
+ ADD_SUBDIRECTORY( formats )
+ ADD_SUBDIRECTORY( tools )
diff --git a/recipes/opensync/libopensync-plugin-evo2-sync_0.22.bb b/recipes/opensync/libopensync-plugin-evo2-sync_0.22.bb
new file mode 100644
index 0000000000..6b2609902a
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-evo2-sync_0.22.bb
@@ -0,0 +1,6 @@
+PLUGIN_ARCHIVE = "evolution2"
+
+require libopensync-plugin.inc
+require libopensync-plugin_0.22.inc
+
+DEPENDS += " eds-dbus"
diff --git a/recipes/opensync/libopensync-plugin-evo2-sync_svn.bb b/recipes/opensync/libopensync-plugin-evo2-sync_svn.bb
new file mode 100644
index 0000000000..0a8084e519
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-evo2-sync_svn.bb
@@ -0,0 +1,8 @@
+
+SRC_URI = "svn://svn.opensync.org/plugins;module=evolution2;proto=http"
+S = "${WORKDIR}/evolution2"
+
+require libopensync-plugin.inc
+
+DEPENDS += " eds-dbus"
+
diff --git a/recipes/opensync/libopensync-plugin-evolution2_0.36.bb b/recipes/opensync/libopensync-plugin-evolution2_0.36.bb
new file mode 100644
index 0000000000..da4ecb80b3
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-evolution2_0.36.bb
@@ -0,0 +1,3 @@
+require libopensync-plugin_0.36.inc
+
+DEPENDS += " eds-dbus"
diff --git a/recipes/opensync/libopensync-plugin-file-sync_0.22.bb b/recipes/opensync/libopensync-plugin-file-sync_0.22.bb
new file mode 100644
index 0000000000..d34473127d
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-file-sync_0.22.bb
@@ -0,0 +1,2 @@
+require libopensync-plugin.inc
+require libopensync-plugin_0.22.inc
diff --git a/recipes/opensync/libopensync-plugin-file-sync_svn.bb b/recipes/opensync/libopensync-plugin-file-sync_svn.bb
new file mode 100644
index 0000000000..ae300b402f
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-file-sync_svn.bb
@@ -0,0 +1,5 @@
+
+SRC_URI = "svn://svn.opensync.org/plugins;module=file-sync;proto=http"
+S = "${WORKDIR}/file-sync"
+
+require libopensync-plugin.inc
diff --git a/recipes/opensync/libopensync-plugin-file_0.18.bb b/recipes/opensync/libopensync-plugin-file_0.18.bb
new file mode 100644
index 0000000000..293431d13e
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-file_0.18.bb
@@ -0,0 +1,17 @@
+SRC_URI = "http://ewi546.ewi.utwente.nl/OE/source/${P}.tar.gz"
+
+
+LICENSE = "LGPL"
+DEPENDS = "libopensync"
+RRECOMMENDS = "multisync"
+HOMEPAGE = "http://www.opensync.org/"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += "${datadir} ${libdir}"
+do_install() {
+install -d ${D}${datadir}/opensync/defaults
+install -d ${D}${libdir}/opensync/plugins
+install -m 644 src/file-sync ${D}${datadir}/opensync/defaults
+install -m 755 src/.libs/file_sync.so ${D}${libdir}/opensync/plugins/file_sync.so
+}
diff --git a/recipes/opensync/libopensync-plugin-file_0.36.bb b/recipes/opensync/libopensync-plugin-file_0.36.bb
new file mode 100644
index 0000000000..33a049b7d6
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-file_0.36.bb
@@ -0,0 +1 @@
+require libopensync-plugin_0.36.inc
diff --git a/recipes/opensync/libopensync-plugin-google-calendar_0.36.bb b/recipes/opensync/libopensync-plugin-google-calendar_0.36.bb
new file mode 100644
index 0000000000..33a049b7d6
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-google-calendar_0.36.bb
@@ -0,0 +1 @@
+require libopensync-plugin_0.36.inc
diff --git a/recipes/opensync/libopensync-plugin-gpe_0.18.bb b/recipes/opensync/libopensync-plugin-gpe_0.18.bb
new file mode 100644
index 0000000000..6bf2e863d3
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-gpe_0.18.bb
@@ -0,0 +1,18 @@
+SRC_URI = "http://ewi546.ewi.utwente.nl/OE/source/${P}.tar.gz"
+
+
+LICENSE = "LGPL"
+DEPENDS = "libopensync"
+RRECOMMENDS = "multisync"
+HOMEPAGE = "http://www.opensync.org/"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += "${datadir} ${libdir}"
+
+do_install() {
+install -d ${D}${datadir}/opensync/defaults
+install -d ${D}${libdir}/opensync/plugins
+install -m 644 src/gpe-sync ${D}${datadir}/opensync/defaults
+install -m 755 src/.libs/gpe_sync.so ${D}${libdir}/opensync/plugins/
+}
diff --git a/recipes/opensync/libopensync-plugin-irmc-sync_0.22.bb b/recipes/opensync/libopensync-plugin-irmc-sync_0.22.bb
new file mode 100644
index 0000000000..55df4e4d78
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-irmc-sync_0.22.bb
@@ -0,0 +1,4 @@
+require libopensync-plugin.inc
+require libopensync-plugin_0.22.inc
+
+DEPENDS += "openobex bluez-libs"
diff --git a/recipes/opensync/libopensync-plugin-irmc_0.18.bb b/recipes/opensync/libopensync-plugin-irmc_0.18.bb
new file mode 100644
index 0000000000..8ab66f8130
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-irmc_0.18.bb
@@ -0,0 +1,18 @@
+SRC_URI = "http://ewi546.ewi.utwente.nl/OE/source/${P}.tar.gz"
+
+
+LICENSE = "LGPL"
+DEPENDS = "libopensync openobex bluez-libs"
+RRECOMMENDS = "multisync"
+HOMEPAGE = "http://www.opensync.org/"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += "${datadir} ${libdir}"
+
+do_install() {
+install -d ${D}${datadir}/opensync/defaults
+install -d ${D}${libdir}/opensync/plugins
+install -m 644 src/irmc-sync ${D}${datadir}/opensync/defaults
+install -m 755 src/.libs/irmc_sync.so ${D}${libdir}/opensync/plugins/
+}
diff --git a/recipes/opensync/libopensync-plugin-irmc_0.36.bb b/recipes/opensync/libopensync-plugin-irmc_0.36.bb
new file mode 100644
index 0000000000..295dfdecfa
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-irmc_0.36.bb
@@ -0,0 +1,3 @@
+require libopensync-plugin_0.36.inc
+
+DEPENDS += "openobex bluez-libs"
diff --git a/recipes/opensync/libopensync-plugin-syncml-client-plugin-0.1/missing-syncml-config.patch b/recipes/opensync/libopensync-plugin-syncml-client-plugin-0.1/missing-syncml-config.patch
new file mode 100644
index 0000000000..0fac67e5d9
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-syncml-client-plugin-0.1/missing-syncml-config.patch
@@ -0,0 +1,8 @@
+--- tmp/src/missing-syncml-client-plugin 2007-01-09 12:55:48.000000000 +0000
++++ tmp/src/syncml-client-plugin 2007-01-09 12:55:48.000000000 +0000
+@@ -0,0 +1,5 @@
++<config>
++ <gconf-uri>/apps/syncml-client</gconf-uri>
++ <object-type>contact</object-type>
++ <sync-source-name>card</sync-source-name>
++</config>
diff --git a/recipes/opensync/libopensync-plugin-syncml-client-plugin-0.1/syncml-client-plugin-cpp.patch b/recipes/opensync/libopensync-plugin-syncml-client-plugin-0.1/syncml-client-plugin-cpp.patch
new file mode 100644
index 0000000000..7b659ce7c3
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-syncml-client-plugin-0.1/syncml-client-plugin-cpp.patch
@@ -0,0 +1,11 @@
+--- tmp/src/syncml-client-plugin.cpp.orig 2007-01-09 12:27:33.000000000 +0000
++++ tmp/src/syncml-client-plugin.cpp 2007-01-09 12:27:33.000000000 +0000
+@@ -94,7 +94,7 @@
+ /**
+ * Initialize the plugin environment, read config data.
+ */
+-extern "C" static void* smc_initialize(OSyncMember *member, OSyncError **error)
++extern "C" void* smc_initialize(OSyncMember *member, OSyncError **error)
+ {
+ char *configData;
+ int configSize;
diff --git a/recipes/opensync/libopensync-plugin-syncml-client-plugin_0.1.bb b/recipes/opensync/libopensync-plugin-syncml-client-plugin_0.1.bb
new file mode 100644
index 0000000000..a81417bf7e
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-syncml-client-plugin_0.1.bb
@@ -0,0 +1,13 @@
+PR = "r1"
+
+SRC_URI = "svn://svn.opensync.org/plugins/syncml-client/plugin/tags;module=release-${PV};proto=http \
+ file://missing-syncml-config.patch;patch=1 \
+ file://syncml-client-plugin-cpp.patch;patch=1"
+
+
+S = "${WORKDIR}/release-${PV}"
+
+require libopensync-plugin.inc
+
+DEPENDS += "syncml-client"
+
diff --git a/recipes/opensync/libopensync-plugin-syncml-plugin.bb b/recipes/opensync/libopensync-plugin-syncml-plugin.bb
new file mode 100644
index 0000000000..0a7d82db74
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-syncml-plugin.bb
@@ -0,0 +1,16 @@
+
+SRC_URI = "svn://svn.opensync.org/plugins;module=syncml;proto=http"
+S = "${WORKDIR}/syncml"
+
+require libopensync-plugin.inc
+
+DEPENDS += " libsyncml"
+
+do_install() {
+ install -d ${D}${datadir}/opensync/defaults
+ install -d ${D}${libdir}/opensync/plugins
+ install -m 644 src/syncml-http-server ${D}${datadir}/opensync/defaults
+ install -m 644 src/syncml-obex-client ${D}${datadir}/opensync/defaults
+ install -m 755 src/.libs/${PLUGIN_SONAME} ${D}${libdir}/opensync/plugins/
+}
+
diff --git a/recipes/opensync/libopensync-plugin-syncml_0.22.bb b/recipes/opensync/libopensync-plugin-syncml_0.22.bb
new file mode 100644
index 0000000000..2a26eb1674
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-syncml_0.22.bb
@@ -0,0 +1,13 @@
+
+require libopensync-plugin.inc
+
+DEPENDS += " libsyncml"
+
+do_install() {
+ install -d ${D}${datadir}/opensync/defaults
+ install -d ${D}${libdir}/opensync/plugins
+ install -m 644 src/syncml-http-server ${D}${datadir}/opensync/defaults
+ install -m 644 src/syncml-obex-client ${D}${datadir}/opensync/defaults
+ install -m 755 src/.libs/${PLUGIN_SONAME} ${D}${libdir}/opensync/plugins/
+}
+
diff --git a/recipes/opensync/libopensync-plugin-syncml_0.36.bb b/recipes/opensync/libopensync-plugin-syncml_0.36.bb
new file mode 100644
index 0000000000..e1395a7006
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-syncml_0.36.bb
@@ -0,0 +1,3 @@
+require libopensync-plugin_0.36.inc
+
+DEPENDS += " libsyncml (>= 0.4.6)"
diff --git a/recipes/opensync/libopensync-plugin-vformat_0.36.bb b/recipes/opensync/libopensync-plugin-vformat_0.36.bb
new file mode 100644
index 0000000000..84a48f21fe
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin-vformat_0.36.bb
@@ -0,0 +1,3 @@
+require libopensync-plugin_0.36.inc
+
+DEPENDS += " check"
diff --git a/recipes/opensync/libopensync-plugin.inc b/recipes/opensync/libopensync-plugin.inc
new file mode 100644
index 0000000000..b1986a9e64
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin.inc
@@ -0,0 +1,24 @@
+
+PV = "0.22+svn${SRCDATE}"
+PLUGIN_NAME ?= "${@bb.data.getVar('PN', d, 1).replace('libopensync-plugin-','')}"
+PLUGIN_SONAME ?= "${@bb.data.getVar('PLUGIN_NAME', d, 1).replace('-','_')}.so"
+SRC_URI ?= "svn://svn.opensync.org/plugins;module=${PLUGIN_NAME};proto=http"
+S ?= "${WORKDIR}/${PLUGIN_NAME}"
+
+LICENSE ?= "LGPL"
+DEPENDS += " libopensync"
+RRECOMMENDS += " msynctool"
+HOMEPAGE ?= "http://www.opensync.org/"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += "${datadir} ${libdir}/opensync/plugins/*.so"
+FILES_${PN}-dbg += "${libdir}/opensync/plugins/.debug"
+
+do_install() {
+ install -d ${D}${datadir}/opensync/defaults
+ install -d ${D}${libdir}/opensync/plugins
+ install -m 644 src/${PLUGIN_NAME} ${D}${datadir}/opensync/defaults
+ install -m 755 src/.libs/${PLUGIN_SONAME} ${D}${libdir}/opensync/plugins/
+}
+
diff --git a/recipes/opensync/libopensync-plugin_0.22.inc b/recipes/opensync/libopensync-plugin_0.22.inc
new file mode 100644
index 0000000000..03857dce53
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin_0.22.inc
@@ -0,0 +1,12 @@
+PV = "0.22"
+PLUGIN_ARCHIVE ?= "${@bb.data.getVar('PLUGIN_NAME', d, 1).replace('-sync','')}"
+SRC_URI = "http://www.opensync.org/attachment/wiki/download/libopensync-plugin-${PLUGIN_ARCHIVE}-${PV}.tar.bz2?format=raw"
+
+S = "${WORKDIR}/libopensync-plugin-${PLUGIN_ARCHIVE}-${PV}/"
+
+do_unpack2() {
+ cd ${WORKDIR} && tar jxf libopensync-plugin-${PLUGIN_ARCHIVE}-${PV}.tar.bz2?format=raw
+}
+
+addtask unpack2 after do_unpack before do_patch
+
diff --git a/recipes/opensync/libopensync-plugin_0.36.inc b/recipes/opensync/libopensync-plugin_0.36.inc
new file mode 100644
index 0000000000..db6b1fa73a
--- /dev/null
+++ b/recipes/opensync/libopensync-plugin_0.36.inc
@@ -0,0 +1,9 @@
+DEPENDS = "libopensync (>= 0.36)"
+
+SRC_URI = "http://opensync.org/download/releases/${PV}/${P}.tar.bz2"
+
+inherit cmake
+
+FILES_${PN} += "${libdir}/opensync*/plugins/*.so \
+ ${libdir}/opensync*/formats/*.so \
+ ${datadir}/opensync*/defaults/"
diff --git a/recipes/opensync/libopensync/.mtn2git_empty b/recipes/opensync/libopensync/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/recipes/opensync/libopensync/.mtn2git_empty
diff --git a/recipes/opensync/libopensync_0.18.bb b/recipes/opensync/libopensync_0.18.bb
new file mode 100644
index 0000000000..5a2e5be2ba
--- /dev/null
+++ b/recipes/opensync/libopensync_0.18.bb
@@ -0,0 +1,18 @@
+SRC_URI = "http://ewi546.ewi.utwente.nl/OE/source/libopensync-${PV}.tar.gz"
+
+
+LICENSE = "LGPL"
+DEPENDS = "sqlite3 libxml2 zlib glib-2.0"
+HOMEPAGE = "http://www.opensync.org/"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-python"
+LEAD_SONAME = "libopensync.so"
+
+FILES_${PN} += " ${libdir}/opensync/formats/*.so"
+
+do_stage() {
+autotools_stage_all
+}
+
diff --git a/recipes/opensync/libopensync_0.20.bb b/recipes/opensync/libopensync_0.20.bb
new file mode 100644
index 0000000000..9560e5f949
--- /dev/null
+++ b/recipes/opensync/libopensync_0.20.bb
@@ -0,0 +1,18 @@
+LICENSE = "LGPL"
+HOMEPAGE = "http://www.opensync.org/"
+
+DEPENDS = "sqlite3 libxml2 zlib glib-2.0"
+
+SRC_URI = "http://www.openembedded.org/sources/libopensync-${PV}.tar.gz"
+
+inherit autotools pkgconfig lib_package
+
+EXTRA_OECONF = "--disable-python"
+LEAD_SONAME = "libopensync.so"
+
+FILES_${PN} += " ${libdir}/opensync/formats/*.so"
+
+do_stage() {
+autotools_stage_all
+}
+
diff --git a/recipes/opensync/libopensync_0.22.bb b/recipes/opensync/libopensync_0.22.bb
new file mode 100644
index 0000000000..ed4ef740bc
--- /dev/null
+++ b/recipes/opensync/libopensync_0.22.bb
@@ -0,0 +1,21 @@
+LICENSE = "LGPL"
+HOMEPAGE = "http://www.opensync.org/"
+
+DEPENDS = "sqlite3 libxml2 zlib glib-2.0"
+
+SRC_URI = "http://www.opensync.org/attachment/wiki/download/libopensync-0.22.tar.bz2?format=raw"
+
+inherit autotools pkgconfig lib_package
+
+EXTRA_OECONF = "--disable-python"
+LEAD_SONAME = "libopensync.so"
+
+FILES_${PN} += " ${libdir}/opensync/formats/*.so"
+FILES_${PN}-dbg += " ${libdir}/opensync/formats/.debug/*.so"
+
+require opensync-unpack.inc
+
+do_stage() {
+autotools_stage_all
+}
+
diff --git a/recipes/opensync/libopensync_0.36.bb b/recipes/opensync/libopensync_0.36.bb
new file mode 100644
index 0000000000..f41cf89b5f
--- /dev/null
+++ b/recipes/opensync/libopensync_0.36.bb
@@ -0,0 +1,26 @@
+LICENSE = "LGPL"
+HOMEPAGE = "http://www.opensync.org/"
+
+DEPENDS = "sqlite3 libxml2 glib-2.0 check"
+
+SRC_URI = "http://opensync.org/download/releases/${PV}/libopensync-${PV}.tar.bz2\
+ file://cmake.patch;patch=1 \
+ file://build-in-src.patch;patch=1 \
+ file://no-python-check.patch;patch=1"
+
+inherit cmake pkgconfig
+
+LEAD_SONAME = "libopensync.so"
+
+FILES_${PN} += " ${libdir}/opensync*/formats/*.so \
+ ${libdir}/opensync*/osplugin \
+ ${datadir}/opensync*/schemas \
+ ${datadir}/opensync*/capabilities \
+ ${datadir}/opensync*/descriptions \
+ "
+FILES_${PN}-dbg += " ${libdir}/opensync*/formats/.debug/*.so \
+ ${libdir}/opensync*/.debug/osplugin "
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/recipes/opensync/libopensync_svn.bb b/recipes/opensync/libopensync_svn.bb
new file mode 100644
index 0000000000..67501cc6e9
--- /dev/null
+++ b/recipes/opensync/libopensync_svn.bb
@@ -0,0 +1,20 @@
+LICENSE = "LGPL"
+HOMEPAGE = "http://www.opensync.org/"
+DEPENDS = "sqlite3 libxml2 zlib glib-2.0"
+PV = "0.22+svn${SRCDATE}"
+SRC_URI = "svn://svn.opensync.org;module=trunk;proto=http"
+
+DEFAULT_PREFERENCE = "-1"
+
+inherit autotools pkgconfig lib_package
+
+S = "${WORKDIR}/trunk"
+EXTRA_OECONF = "--disable-python"
+LEAD_SONAME = "libopensync.so"
+
+FILES_${PN} += " ${libdir}/opensync/formats/*.so"
+
+do_stage() {
+ autotools_stage_all
+}
+
diff --git a/recipes/opensync/libsyncml/.mtn2git_empty b/recipes/opensync/libsyncml/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/recipes/opensync/libsyncml/.mtn2git_empty
diff --git a/recipes/opensync/libsyncml_0.4.0.bb b/recipes/opensync/libsyncml_0.4.0.bb
new file mode 100644
index 0000000000..dbc7404f50
--- /dev/null
+++ b/recipes/opensync/libsyncml_0.4.0.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Libsyncml is a implementation of the SyncML protocol."
+HOMEPAGE = "http://libsyncml.opensync.org/"
+LICENSE = "LGPL"
+
+DEPENDS = "sed-native wbxml2 libsoup libxml2 bluez-libs openobex"
+
+SRC_URI = "http://ewi546.ewi.utwente.nl/OE/source/${P}.tar.gz"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = " --enable-http \
+ --enable-obex \
+ --enable-bluetooth \
+ --enable-tools \
+ --with-wbxml"
+
+CFLAGS += "-I${STAGING_INCDIR}/libsoup-2.2"
+
+do_configure_append() {
+ sed -i s:-I/usr/include/:-I/foo/:g Makefile
+ sed -i s:-I/usr/include/:-I/foo/:g */Makefile
+ sed -i s:-I/usr/include/:-I/foo/:g */*/Makefile
+}
+
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}"
+FILES_${PN} = "${libdir}/*.so.*"
+
+
+
+
+
diff --git a/recipes/opensync/libsyncml_0.4.6.bb b/recipes/opensync/libsyncml_0.4.6.bb
new file mode 100644
index 0000000000..297a1ca450
--- /dev/null
+++ b/recipes/opensync/libsyncml_0.4.6.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Libsyncml is a implementation of the SyncML protocol."
+HOMEPAGE = "http://libsyncml.opensync.org/"
+LICENSE = "LGPL"
+DEPENDS = "sed-native wbxml2 libsoup libxml2 bluez-libs openobex"
+
+SRC_URI = "http://libsyncml.opensync.org/download/releases/${PV}/libsyncml-${PV}.tar.bz2 \
+ file://build-in-src.patch;patch=1"
+
+inherit cmake pkgconfig
+
+do_stage() {
+ autotools_stage_all
+}
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}"
+FILES_${PN} = "${libdir}/*.so.*"
diff --git a/recipes/opensync/libsyncml_svn.bb b/recipes/opensync/libsyncml_svn.bb
new file mode 100644
index 0000000000..17b2537e85
--- /dev/null
+++ b/recipes/opensync/libsyncml_svn.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Libsyncml is a implementation of the SyncML protocol."
+HOMEPAGE = "http://libsyncml.opensync.org/"
+LICENSE = "LGPL"
+
+DEPENDS = "sed-native wbxml2 libsoup libxml2 bluez-libs openobex"
+
+PV = "0.4.2+svn${SRCDATE}"
+SRC_URI = "svn://svn.opensync.org/libsyncml;module=trunk;proto=http"
+S = "${WORKDIR}/trunk"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = " --enable-http \
+ --enable-obex \
+ --enable-bluetooth \
+ --enable-tools \
+ --with-wbxml"
+
+CFLAGS += "-I${STAGING_INCDIR}/libsoup-2.2"
+
+do_configure_append() {
+ sed -i s:-I/usr/include/:-I/foo/:g Makefile
+ sed -i s:-I/usr/include/:-I/foo/:g */Makefile
+ sed -i s:-I/usr/include/:-I/foo/:g */*/Makefile
+}
+
+do_stage() {
+ autotools_stage_all
+}
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}"
+FILES_${PN} = "${libdir}/*.so.*"
+
diff --git a/recipes/opensync/msynctool_0.22.bb b/recipes/opensync/msynctool_0.22.bb
new file mode 100644
index 0000000000..018c227e36
--- /dev/null
+++ b/recipes/opensync/msynctool_0.22.bb
@@ -0,0 +1,9 @@
+SRC_URI = "http://www.opensync.org/attachment/wiki/download/msynctool-0.22.tar.bz2?format=raw"
+
+LICENSE = "GPL"
+DEPENDS = "libopensync"
+HOMEPAGE = "http://www.opensync.org/"
+
+inherit autotools pkgconfig
+
+require opensync-unpack.inc
diff --git a/recipes/opensync/msynctool_0.36.bb b/recipes/opensync/msynctool_0.36.bb
new file mode 100644
index 0000000000..773166b3be
--- /dev/null
+++ b/recipes/opensync/msynctool_0.36.bb
@@ -0,0 +1,7 @@
+SRC_URI = "http://www.opensync.org/download/releases/${PV}/msynctool-${PV}.tar.bz2"
+
+LICENSE = "GPL"
+DEPENDS = "libopensync glib-2.0"
+HOMEPAGE = "http://www.opensync.org/"
+
+inherit cmake pkgconfig
diff --git a/recipes/opensync/msynctool_svn.bb b/recipes/opensync/msynctool_svn.bb
new file mode 100644
index 0000000000..319cf39d05
--- /dev/null
+++ b/recipes/opensync/msynctool_svn.bb
@@ -0,0 +1,10 @@
+PV = "0.22+svn${SRCDATE}"
+SRC_URI = "svn://svn.opensync.org/multisync;module=trunk;proto=http"
+S = "${WORKDIR}/trunk"
+
+LICENSE = "GPL"
+DEPENDS = "libopensync"
+HOMEPAGE = "http://www.opensync.org/"
+
+inherit autotools pkgconfig
+
diff --git a/recipes/opensync/multisync_0.90.18.bb b/recipes/opensync/multisync_0.90.18.bb
new file mode 100644
index 0000000000..4134ff2ebc
--- /dev/null
+++ b/recipes/opensync/multisync_0.90.18.bb
@@ -0,0 +1,10 @@
+SRC_URI = "http://ewi546.ewi.utwente.nl/OE/source/${P}.tar.gz"
+
+
+LICENSE = "GPL"
+DEPENDS = "libopensync"
+HOMEPAGE = "http://www.opensync.org/"
+
+inherit autotools pkgconfig
+
+
diff --git a/recipes/opensync/opensync-unpack.inc b/recipes/opensync/opensync-unpack.inc
new file mode 100644
index 0000000000..d5443187bd
--- /dev/null
+++ b/recipes/opensync/opensync-unpack.inc
@@ -0,0 +1,5 @@
+do_unpack2() {
+ cd ${WORKDIR} && tar jxf ${PN}-${PV}.tar.bz2?format=raw
+}
+
+addtask unpack2 after do_unpack before do_patch
diff --git a/recipes/opensync/syncml-client-0.1/syncml-client-pc-in-cross.patch b/recipes/opensync/syncml-client-0.1/syncml-client-pc-in-cross.patch
new file mode 100644
index 0000000000..364f7643c5
--- /dev/null
+++ b/recipes/opensync/syncml-client-0.1/syncml-client-pc-in-cross.patch
@@ -0,0 +1,10 @@
+--- tmp/syncml-client.pc.in.orig 2007-01-09 09:43:18.000000000 +0000
++++ tmp/syncml-client.pc.in 2007-01-09 09:43:18.000000000 +0000
+@@ -8,6 +8,6 @@
+ Version: @VERSION@
+ Requires: libcurl, gconf-2.0
+ Libs: @SYNCML_LIBS@ -lsyncmlclient
+-Cflags: @SYNCML_CFLAGS@ -I@includedir@/syncml-client
++Cflags: @SYNCML_CFLAGS@ -I${includedir}/syncml-client
+ ~
+
diff --git a/recipes/opensync/syncml-client-0.1/syncml-client-plugin-h.patch b/recipes/opensync/syncml-client-0.1/syncml-client-plugin-h.patch
new file mode 100644
index 0000000000..c936445a95
--- /dev/null
+++ b/recipes/opensync/syncml-client-0.1/syncml-client-plugin-h.patch
@@ -0,0 +1,11 @@
+--- tmp/src/syncml-client.h.orig 2007-01-09 12:15:41.000000000 +0000
++++ tmp/src/syncml-client-plugin.h 2007-01-09 12:15:41.000000000 +0000
+@@ -20,7 +20,7 @@
+ #define SYNCML_CLIENT_PLUGIN
+
+ #include <opensync/opensync.h>
+-#include <syncml-client.h>
++#include <syncml-client/syncml-client.h>
+ #include "SmcSyncSource.h"
+ #include "SmcConfig.h"
+
diff --git a/recipes/opensync/syncml-client_0.1.bb b/recipes/opensync/syncml-client_0.1.bb
new file mode 100644
index 0000000000..e971624c8f
--- /dev/null
+++ b/recipes/opensync/syncml-client_0.1.bb
@@ -0,0 +1,14 @@
+LICENSE = "GPL"
+DEPENDS = "gtk+ curl gconf"
+HOMEPAGE = "http://hem.bredband.net/miko22/"
+DESCRIPTION = "Linux port of the Funambol C++ SyncML client connector."
+PR ="r1"
+
+SRC_URI = "http://hem.bredband.net/miko22/${P}.tar.gz \
+ file://syncml-client-pc-in-cross.patch;patch=1 "
+
+inherit autotools pkgconfig
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/recipes/opensync/wbxml2/00-fix-includes.patch b/recipes/opensync/wbxml2/00-fix-includes.patch
new file mode 100644
index 0000000000..8fe415dab7
--- /dev/null
+++ b/recipes/opensync/wbxml2/00-fix-includes.patch
@@ -0,0 +1,24 @@
+diff -urN wbxml2-0.9.2.orig/src/Makefile.am wbxml2-0.9.2/src/Makefile.am
+--- wbxml2-0.9.2.orig/src/Makefile.am 2006-07-11 13:47:44.000000000 +0200
++++ wbxml2-0.9.2/src/Makefile.am 2008-11-25 08:26:35.000000000 +0100
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in
+
+ INCLUDES =\
+- -I. -I/usr/include
++ -I.
+
+ CFLAGS =\
+ -DHAVE_CONFIG_H\
+diff -urN wbxml2-0.9.2.orig/tools/Makefile.am wbxml2-0.9.2/tools/Makefile.am
+--- wbxml2-0.9.2.orig/tools/Makefile.am 2006-07-11 13:47:46.000000000 +0200
++++ wbxml2-0.9.2/tools/Makefile.am 2008-11-25 08:36:54.000000000 +0100
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in
+
+ INCLUDES =\
+- -I. -I../src -I/usr/include
++ -I. -I../src
+
+ CFLAGS =\
+ -DHAVE_CONFIG_H\
diff --git a/recipes/opensync/wbxml2/01-anonymous-support-and-misc-fixes.patch b/recipes/opensync/wbxml2/01-anonymous-support-and-misc-fixes.patch
new file mode 100644
index 0000000000..225c581c38
--- /dev/null
+++ b/recipes/opensync/wbxml2/01-anonymous-support-and-misc-fixes.patch
@@ -0,0 +1,304 @@
+diff -Nru wbxml2-0.9.2.orig/bootstrap wbxml2-0.9.2/bootstrap
+--- wbxml2-0.9.2.orig/bootstrap 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/bootstrap 2008-01-10 19:03:44.000000000 +0000
+@@ -1,8 +1,2 @@
+-#! /bin/sh
+-libtoolize
+-aclocal
+-autoheader
+-# automake --foreign --add-missing --copy
+-automake --add-missing
+-autoconf
+-./configure --prefix=/usr
++#!/bin/sh
++autoreconf -i
+diff -Nru wbxml2-0.9.2.orig/configure.in wbxml2-0.9.2/configure.in
+--- wbxml2-0.9.2.orig/configure.in 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/configure.in 2008-01-10 19:03:44.000000000 +0000
+@@ -1,11 +1,11 @@
+ dnl Process this file with autoconf to produce a configure script.
+ AC_INIT(doxygen.h)
+-AM_INIT_AUTOMAKE(wbxml2, 0.9.0)
++AM_INIT_AUTOMAKE(wbxml2, 0.9.2)
+ AM_CONFIG_HEADER(config.h)
+
+
+ dnl Define common variables
+-VERSION="0.9.0"
++VERSION="0.9.2"
+ AC_SUBST(VERSION)
+ RELEASE="1"
+ AC_SUBST(RELEASE)
+diff -Nru wbxml2-0.9.2.orig/libwbxml2.pc.in wbxml2-0.9.2/libwbxml2.pc.in
+--- wbxml2-0.9.2.orig/libwbxml2.pc.in 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/libwbxml2.pc.in 2008-01-10 19:03:44.000000000 +0000
+@@ -8,4 +8,4 @@
+ Version: @VERSION@
+ Requires: libxml-2.0 >= 2.6
+ Libs: -L${libdir} -lwbxml2
+-Cflags: -I${includedir}
++Cflags: -I${includedir} -DHAVE_EXPAT -D_REENTRANT -DWBXML_ENCODER_USE_STRTBL -DWBXML_SUPPORT_WML -DWBXML_SUPPORT_WTA -DWBXML_SUPPORT_SI -DWBXML_SUPPORT_SL -DWBXML_SUPPORT_CO -DWBXML_SUPPORT_PROV -DWBXML_SUPPORT_EMN -DWBXML_SUPPORT_DRMREL -DWBXML_SUPPORT_OTA_SETTINGS -DWBXML_SUPPORT_SYNCML -DWBXML_SUPPORT_WV -DWBXML_SUPPORT_AIRSYNC
+--- wbxml2-0.9.2.orig/src/Makefile.am 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/src/Makefile.am 2008-01-10 19:03:44.000000000 +0000
+@@ -3,7 +3,7 @@
+ INCLUDES =\
+ -I. -I/usr/include
+
+-CFLAGS =\
++AM_CFLAGS =\
+ -DHAVE_CONFIG_H\
+ -DHAVE_EXPAT\
+ -D_REENTRANT\
+@@ -20,9 +20,7 @@
+ -DWBXML_SUPPORT_SYNCML\
+ -DWBXML_SUPPORT_WV\
+ -DWBXML_SUPPORT_AIRSYNC\
+- -Wall -Wimplicit -Wreturn-type -Wunused -Wswitch -Wcomment -Wuninitialized -Wparentheses -Wpointer-arith -Wmissing-prototypes\
+- -O3\
+- -g
++ -Wall -g
+
+ lib_LTLIBRARIES = libwbxml2.la
+
+diff -Nru wbxml2-0.9.2.orig/src/wbxml_encoder.c wbxml2-0.9.2/src/wbxml_encoder.c
+--- wbxml2-0.9.2.orig/src/wbxml_encoder.c 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/src/wbxml_encoder.c 2008-01-10 19:03:44.000000000 +0000
+@@ -153,6 +153,7 @@
+ WB_BOOL use_strtbl; /**< Do we use String Table when generating WBXML output ? (default: YES) */
+ #endif /* WBXML_ENCODER_USE_STRTBL */
+ WB_BOOL xml_encode_header; /**< Do we generate XML Header ? */
++ WB_BOOL produce_anonymous; /**< Do we produce anonymous documents? (default: NO) */
+ WBXMLVersion wbxml_version; /**< WBXML Version to use (when generating WBXML output) */
+ WBXMLCharsetMIBEnum output_charset; /**< Output charset encoding */
+ WB_BOOL flow_mode; /**< Is Flow Mode encoding activated ? */
+@@ -400,6 +401,7 @@
+ encoder->cdata = NULL;
+
+ encoder->xml_encode_header = TRUE;
++ encoder->produce_anonymous = FALSE;
+
+ /* Default Version: WBXML 1.3 */
+ encoder->wbxml_version = WBXML_VERSION_13;
+@@ -509,6 +511,15 @@
+ }
+
+
++WBXML_DECLARE(void) wbxml_encoder_set_produce_anonymous(WBXMLEncoder *encoder, WB_BOOL set_anonymous)
++{
++ if (encoder == NULL)
++ return;
++
++ encoder->produce_anonymous = set_anonymous;
++}
++
++
+ WBXML_DECLARE(void) wbxml_encoder_set_wbxml_version(WBXMLEncoder *encoder, WBXMLVersion version)
+ {
+ if (encoder == NULL)
+@@ -1464,7 +1475,8 @@
+
+ /* Encode Public ID */
+ /* If WBXML Public Id is '0x01' (unknown), or we forced it, add the XML Public ID in the String Table */
+- if (encoder->textual_publicid || (public_id == WBXML_PUBLIC_ID_UNKNOWN))
++ if ((encoder->textual_publicid || (public_id == WBXML_PUBLIC_ID_UNKNOWN)) &&
++ !encoder->produce_anonymous)
+ {
+ if (encoder->lang->publicID->xmlPublicID != NULL)
+ {
+@@ -1601,7 +1613,7 @@
+ }
+ else {
+ /* Search tag in Tags Table */
+- if ((tag = wbxml_tables_get_tag_from_xml(encoder->lang, wbxml_tag_get_xml_name(node->name))) != NULL)
++ if ((tag = wbxml_tables_get_tag_from_xml(encoder->lang, encoder->tagCodePage, wbxml_tag_get_xml_name(node->name))) != NULL)
+ {
+ token = tag->wbxmlToken;
+ page = tag->wbxmlCodePage;
+@@ -2897,7 +2909,7 @@
+ /* Date and time can be encoded as OPAQUE data or as a string as specified in [ISO8601]. For now we
+ * keep the string... but if someone wants to code the Date and time encoding function :-)
+ */
+- /* return wbxml_encode_wv_datetime(encoder, buffer); */
++ return wbxml_encode_wv_datetime(encoder, buffer);
+ break;
+ case WBXML_WV_DATA_TYPE_BINARY:
+ /** @todo Binary Encoding !! */
+diff -Nru wbxml2-0.9.2.orig/src/wbxml_encoder.h wbxml2-0.9.2/src/wbxml_encoder.h
+--- wbxml2-0.9.2.orig/src/wbxml_encoder.h 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/src/wbxml_encoder.h 2008-01-10 19:03:44.000000000 +0000
+@@ -118,6 +118,13 @@
+ WBXML_DECLARE(void) wbxml_encoder_set_use_strtbl(WBXMLEncoder *encoder, WB_BOOL use_strtbl);
+
+ /**
++ * @brief Set if we want to produce anonymous WBXML documents [Default: FALSE]
++ * @param encoder [in] The WBXML encoder
++ * @param set_anonymous [in] TRUE to produce anonymous documents, FALSE otherwise
++ */
++WBXML_DECLARE(void) wbxml_encoder_set_produce_anonymous(WBXMLEncoder *encoder, WB_BOOL set_anonymous);
++
++/**
+ * @brief Set the WBXML Version of the output document, when generating WBXML [Default: 'WBXML_VERSION_TOKEN_13' (1.3)]
+ * @param encoder [in] The WBXML Encoder
+ * @param version [in] The WBXML Version
+diff -Nru wbxml2-0.9.2.orig/src/wbxml.h wbxml2-0.9.2/src/wbxml.h
+--- wbxml2-0.9.2.orig/src/wbxml.h 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/src/wbxml.h 2008-01-10 19:03:44.000000000 +0000
+@@ -285,6 +285,7 @@
+ WBXMLVersion wbxml_version; /**< WBXML Version */
+ WB_BOOL keep_ignorable_ws; /**< Keep Ignorable Whitespaces (Default: FALSE) */
+ WB_BOOL use_strtbl; /**< Generate String Table (Default: TRUE) */
++ WB_BOOL produce_anonymous; /**< Produce an anonymous document (Default: FALSE) */
+ } WBXMLGenWBXMLParams;
+
+
+diff -Nru wbxml2-0.9.2.orig/src/wbxml_tables.c wbxml2-0.9.2/src/wbxml_tables.c
+--- wbxml2-0.9.2.orig/src/wbxml_tables.c 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/src/wbxml_tables.c 2008-01-10 19:03:44.000000000 +0000
+@@ -2992,17 +2992,40 @@
+
+
+ WBXML_DECLARE(const WBXMLTagEntry *) wbxml_tables_get_tag_from_xml(const WBXMLLangEntry *lang_table,
++ const int cur_code_page,
+ const WB_UTINY *xml_name)
+ {
+- WB_ULONG i = 0;
++ WB_ULONG i;
++ WB_BOOL found_current = FALSE;
+
+ if ((lang_table == NULL) || (lang_table->tagTable == NULL) || (xml_name == NULL))
+ return NULL;
+
+- while (lang_table->tagTable[i].xmlName != NULL) {
+- if (WBXML_STRCMP(lang_table->tagTable[i].xmlName, xml_name) == 0)
+- return &(lang_table->tagTable[i]);
+- i++;
++ /* First off, try to find it in the current code page, if provided */
++ for (i = 0; cur_code_page >= 0 && lang_table->tagTable[i].xmlName != NULL; i++) {
++ const WBXMLTagEntry *entry = &lang_table->tagTable[i];
++
++ if (entry->wbxmlCodePage == cur_code_page) {
++ found_current = TRUE;
++
++ if (WBXML_STRCMP(entry->xmlName, xml_name) == 0)
++ return entry;
++ } else {
++ if (found_current)
++ break;
++ }
++ }
++
++ /* Then try all others */
++ for (i = 0; lang_table->tagTable[i].xmlName != NULL; i++) {
++ const WBXMLTagEntry *entry = &lang_table->tagTable[i];
++
++ /* We've already searched the current code page */
++ if (cur_code_page >= 0 && entry->wbxmlCodePage == cur_code_page)
++ continue;
++
++ if (WBXML_STRCMP(entry->xmlName, xml_name) == 0)
++ return entry;
+ }
+
+ return NULL;
+diff -Nru wbxml2-0.9.2.orig/src/wbxml_tables.h wbxml2-0.9.2/src/wbxml_tables.h
+--- wbxml2-0.9.2.orig/src/wbxml_tables.h 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/src/wbxml_tables.h 2008-01-10 19:03:44.000000000 +0000
+@@ -255,10 +255,12 @@
+ /**
+ * @brief Search for a Tag Entry in Language Table, given the XML Name of the Tag
+ * @param lang_table The Language Table to search in
++ * @param cur_code_page The current code page so that it can be searched first, or -1 to start from the first one.
+ * @param xml_name The XML Name of the Tag to search
+ * @return The Tag Entry of this XML Name in Language Table, or NULL if not found
+ */
+ WBXML_DECLARE(const WBXMLTagEntry *) wbxml_tables_get_tag_from_xml(const WBXMLLangEntry *lang_table,
++ const int cur_code_page,
+ const WB_UTINY *xml_name);
+
+ /**
+diff -Nru wbxml2-0.9.2.orig/src/wbxml_tree.c wbxml2-0.9.2/src/wbxml_tree.c
+--- wbxml2-0.9.2.orig/src/wbxml_tree.c 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/src/wbxml_tree.c 2008-01-10 19:03:44.000000000 +0000
+@@ -137,6 +137,9 @@
+
+ /* Use String Table */
+ wbxml_encoder_set_use_strtbl(wbxml_encoder, TRUE);
++
++ /* Don't produce an anonymous document by default */
++ wbxml_encoder_set_produce_anonymous(wbxml_encoder, FALSE);
+ }
+ else {
+ /* WBXML Version */
+@@ -154,6 +157,10 @@
+ /* String Table */
+ wbxml_encoder_set_use_strtbl(wbxml_encoder, params->use_strtbl);
+
++ /* Produce an anonymous document? */
++ wbxml_encoder_set_produce_anonymous(wbxml_encoder,
++ params->produce_anonymous);
++
+ /** @todo Add parameter to call : wbxml_encoder_set_output_charset() */
+ }
+
+@@ -455,7 +462,7 @@
+ WBXMLTag *tag = NULL;
+
+ /* Search for XML Tag Name in Table */
+- if ((tag_entry = wbxml_tables_get_tag_from_xml(lang_table, name)) != NULL) {
++ if ((tag_entry = wbxml_tables_get_tag_from_xml(lang_table, -1, name)) != NULL) {
+ /* Found : token tag */
+ tag = wbxml_tag_create_token(tag_entry);
+ }
+@@ -921,6 +928,7 @@
+ result->lang = wbxml_tables_get_table(lang);
+ result->root = NULL;
+ result->orig_charset = orig_charset;
++ result->cur_code_page = 0;
+
+ return result;
+ }
+@@ -1085,7 +1093,9 @@
+ WBXMLTag *tag = NULL;
+
+ /* Search for XML Tag Name in Table */
+- if ((tag_entry = wbxml_tables_get_tag_from_xml(tree->lang, (const WB_UTINY *) name)) != NULL) {
++ if ((tag_entry = wbxml_tables_get_tag_from_xml(tree->lang, tree->cur_code_page, (const WB_UTINY *) name)) != NULL) {
++ tree->cur_code_page = tag_entry->wbxmlCodePage;
++
+ /* Found : token tag */
+ tag = wbxml_tag_create_token(tag_entry);
+ }
+diff -Nru wbxml2-0.9.2.orig/src/wbxml_tree.h wbxml2-0.9.2/src/wbxml_tree.h
+--- wbxml2-0.9.2.orig/src/wbxml_tree.h 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/src/wbxml_tree.h 2008-01-10 19:03:44.000000000 +0000
+@@ -97,6 +97,7 @@
+ const WBXMLLangEntry *lang; /**< Language Table */
+ WBXMLTreeNode *root; /**< Root Element */
+ WBXMLCharsetMIBEnum orig_charset; /**< Charset encoding of original document */
++ WB_UTINY cur_code_page;/**< Last seen code page */
+ } WBXMLTree;
+
+
+diff -Nru wbxml2-0.9.2.orig/tools/Makefile.am wbxml2-0.9.2/tools/Makefile.am
+--- wbxml2-0.9.2.orig/tools/Makefile.am 2008-01-10 19:03:28.000000000 +0000
++++ wbxml2-0.9.2/tools/Makefile.am 2008-01-10 19:03:44.000000000 +0000
+@@ -3,7 +3,7 @@
+ INCLUDES =\
+ -I. -I../src -I/usr/include
+
+-CFLAGS =\
++AM_CFLAGS =\
+ -DHAVE_CONFIG_H\
+ -DHAVE_EXPAT\
+ -D_REENTRANT\
+@@ -20,9 +20,7 @@
+ -DWBXML_SUPPORT_SYNCML\
+ -DWBXML_SUPPORT_WV\
+ -DWBXML_SUPPORT_AIRSYNC\
+- -Wall -Wimplicit -Wreturn-type -Wunused -Wswitch -Wcomment -Wuninitialized -Wparentheses -Wpointer-arith -Wmissing-prototypes\
+- -O3\
+- -g
++ -Wall -g
+
+ bin_PROGRAMS = wbxml2xml xml2wbxml
+
diff --git a/recipes/opensync/wbxml2/02-namespaces.patch b/recipes/opensync/wbxml2/02-namespaces.patch
new file mode 100644
index 0000000000..3c8efcb350
--- /dev/null
+++ b/recipes/opensync/wbxml2/02-namespaces.patch
@@ -0,0 +1,164 @@
+diff -Nru wbxml2-0.9.2.patched/src/wbxml_tables.c wbxml2-0.9.2/src/wbxml_tables.c
+--- wbxml2-0.9.2.patched/src/wbxml_tables.c 2008-01-10 19:05:45.000000000 +0000
++++ wbxml2-0.9.2/src/wbxml_tables.c 2008-01-10 19:04:55.000000000 +0000
+@@ -2806,6 +2806,46 @@
+ { NULL, 0x00, 0x00 }
+ };
+
++/* NOTE:
++ * These namespace names differ from the Microsoft-assigned namespaces. The
++ * reason for the difference is that the Microsoft-assigned names are not
++ * valid URI's and hence produce warning messages when processed by some
++ * libraries. The mapping is as follows:
++ *
++ * Microsoft Ours
++ * --------- ----
++ * AirSync: http://synce.org/formats/airsync_wm5/airsync
++ * POOMCONTACTS: http://synce.org/formats/airsync_wm5/contacts
++ * POOMMAIL: http://synce.org/formats/airsync_wm5/mail
++ * AirNotify: http://synce.org/formats/airsync_wm5/airnotify
++ * POOMCAL: http://synce.org/formats/airsync_wm5/calendar
++ * Move: http://synce.org/formats/airsync_wm5/move
++ * GetItemEstimate: http://synce.org/formats/airsync_wm5/getitemestimate
++ * FolderHierarchy: http://synce.org/formats/airsync_wm5/folderhierarchy
++ * MeetingResponse: http://synce.org/formats/airsync_wm5/meetingresponse
++ * POOMTASKS: http://synce.org/formats/airsync_wm5/tasks
++ * ResolveRecipients: http://synce.org/formats/airsync_wm5/resolverecipients
++ * ValidateCert: http://synce.org/formats/airsync_wm5/validatecert
++ * POOMCONTACTS2: http://synce.org/formats/airsync_wm5/contacts2
++ *
++ */
++const WBXMLNameSpaceEntry sv_airsync_ns_table[] = {
++ { "http://synce.org/formats/airsync_wm5/airsync", 0x00 }, /**< Code Page 0 */
++ { "http://synce.org/formats/airsync_wm5/contacts", 0x01 }, /**< Code Page 1 */
++ { "http://synce.org/formats/airsync_wm5/mail", 0x02 }, /**< Code Page 2 */
++ { "http://synce.org/formats/airsync_wm5/airnotify", 0x03 }, /**< Code Page 3 */
++ { "http://synce.org/formats/airsync_wm5/calendar", 0x04 }, /**< Code Page 4 */
++ { "http://synce.org/formats/airsync_wm5/move", 0x05 }, /**< Code Page 5 */
++ { "http://synce.org/formats/airsync_wm5/getitemestimate", 0x06 }, /**< Code Page 6 */
++ { "http://synce.org/formats/airsync_wm5/folderhierarchy", 0x07 }, /**< Code Page 7 */
++ { "http://synce.org/formats/airsync_wm5/meetingresponse", 0x08 }, /**< Code Page 8 */
++ { "http://synce.org/formats/airsync_wm5/tasks", 0x09 }, /**< Code Page 9 */
++ { "http://synce.org/formats/airsync_wm5/resolverecipients", 0x0a }, /**< Code Page 10 */
++ { "http://synce.org/formats/airsync_wm5/validatecert", 0x0b }, /**< Code Page 11 */
++ { "http://synce.org/formats/airsync_wm5/contacts2", 0x0c }, /**< Code Page 12 */
++ { NULL, 0x00 }
++};
++
+ #endif /* WBXML_SUPPORT_AIRSYNC */
+
+
+@@ -2885,7 +2925,7 @@
+ #endif /* WBXML_SUPPORT_WV */
+
+ #if defined( WBXML_SUPPORT_AIRSYNC )
+- { WBXML_LANG_AIRSYNC, &sv_airsync_public_id, sv_airsync_tag_table, NULL, NULL, NULL, NULL },
++ { WBXML_LANG_AIRSYNC, &sv_airsync_public_id, sv_airsync_tag_table, sv_airsync_ns_table, NULL, NULL, NULL },
+ #endif /* WBXML_SUPPORT_AIRSYNC */
+
+ { WBXML_LANG_UNKNOWN, NULL, NULL, NULL, NULL, NULL, NULL }
+@@ -3169,3 +3209,21 @@
+
+ return NULL;
+ }
++
++WBXML_DECLARE(WB_UTINY) wbxml_tables_get_code_page(const WBXMLNameSpaceEntry *ns_table, const WB_TINY* xmlns)
++{
++ WB_ULONG i = 0;
++
++ if (ns_table == NULL)
++ return NULL;
++
++ while (ns_table[i].xmlNameSpace != NULL)
++ {
++ if (strcmp(ns_table[i].xmlNameSpace, xmlns) == 0)
++ return ns_table[i].wbxmlCodePage;
++
++ i++;
++ }
++
++ return NULL;
++}
+diff -Nru wbxml2-0.9.2.patched/src/wbxml_tables.h wbxml2-0.9.2/src/wbxml_tables.h
+--- wbxml2-0.9.2.patched/src/wbxml_tables.h 2008-01-10 19:05:45.000000000 +0000
++++ wbxml2-0.9.2/src/wbxml_tables.h 2008-01-10 19:04:55.000000000 +0000
+@@ -310,6 +310,9 @@
+ WBXML_DECLARE(const WB_TINY *) wbxml_tables_get_xmlns(const WBXMLNameSpaceEntry *ns_table,
+ WB_UTINY code_page);
+
++WBXML_DECLARE(WB_UTINY) wbxml_tables_get_code_page(const WBXMLNameSpaceEntry *ns_table,
++ const WB_TINY* xmlns);
++
+ /** @} */
+
+ #ifdef __cplusplus
+diff -Nru wbxml2-0.9.2.patched/src/wbxml_tree.c wbxml2-0.9.2/src/wbxml_tree.c
+--- wbxml2-0.9.2.patched/src/wbxml_tree.c 2008-01-10 19:05:45.000000000 +0000
++++ wbxml2-0.9.2/src/wbxml_tree.c 2008-01-10 19:04:55.000000000 +0000
+@@ -34,6 +34,7 @@
+
+ #include "wbxml.h"
+
++#define WBXML_NAMESPACE_SEPARATOR ':'
+
+ /***************************************************
+ * Public Functions
+@@ -201,9 +202,9 @@
+ *tree = NULL;
+
+ /* Create Expat XML Parser */
+- if ((xml_parser = XML_ParserCreate(NULL)) == NULL)
++ if ((xml_parser = XML_ParserCreateNS(NULL, WBXML_NAMESPACE_SEPARATOR)) == NULL)
+ return WBXML_ERROR_NOT_ENOUGH_MEMORY;
+-
++
+ /* Init context */
+ wbxml_tree_clb_ctx.current = NULL;
+ wbxml_tree_clb_ctx.error = WBXML_OK;
+@@ -1091,9 +1092,32 @@
+ const WBXMLTagEntry *tag_entry = NULL;
+ WBXMLTreeNode *node = NULL;
+ WBXMLTag *tag = NULL;
+-
++ WB_UTINY *sep = NULL;
++ const WB_UTINY *namespace_name = NULL;
++ const WB_UTINY *element_name = NULL;
++
++ /* Separate the namespace from the element name */
++ sep = (WB_UTINY *)strrchr((const WB_TINY *) name, WBXML_NAMESPACE_SEPARATOR);
++ if (sep != NULL) {
++ /* Temporarily split the string by changing the separater to a null-terminator */
++ *sep = '\0';
++
++ namespace_name = name;
++ element_name = sep+1;
++ }
++ else {
++ /* No namespace, so just set it to an empty string (specifically, the null-terminator at the end of the elemet name */
++ namespace_name = name + strlen((const WB_TINY *) name);
++ element_name = name;
++ }
++
++ WBXML_DEBUG((WBXML_CONV, "Parsed element name: Namespace='%s', Element='%s'", namespace_name, element_name));
++
++ /* Update the current code page to match the one specified by the namespace */
++ tree->cur_code_page = wbxml_tables_get_code_page(tree->lang->nsTable, (const WB_TINY *) namespace_name);
++
+ /* Search for XML Tag Name in Table */
+- if ((tag_entry = wbxml_tables_get_tag_from_xml(tree->lang, tree->cur_code_page, (const WB_UTINY *) name)) != NULL) {
++ if ((tag_entry = wbxml_tables_get_tag_from_xml(tree->lang, tree->cur_code_page, element_name)) != NULL) {
+ tree->cur_code_page = tag_entry->wbxmlCodePage;
+
+ /* Found : token tag */
+@@ -1104,6 +1128,11 @@
+ tag = wbxml_tag_create_literal(name);
+ }
+
++ if (sep != NULL) {
++ /* We are done with the element and namespace names, so put the separator character back */
++ *sep = WBXML_NAMESPACE_SEPARATOR;
++ }
++
+ if (tag == NULL)
+ return NULL;
+
diff --git a/recipes/opensync/wbxml2/04_saxlike_entity_parsing.patch b/recipes/opensync/wbxml2/04_saxlike_entity_parsing.patch
new file mode 100644
index 0000000000..43d915b8b7
--- /dev/null
+++ b/recipes/opensync/wbxml2/04_saxlike_entity_parsing.patch
@@ -0,0 +1,90 @@
+diff --git a/src/wbxml_parser.c b/src/wbxml_parser.c
+index c022e00..bea2062 100644
+--- a/src/wbxml_parser.c
++++ b/src/wbxml_parser.c
+@@ -43,6 +43,7 @@
+ */
+
+ #include "wbxml.h"
++#include <assert.h>
+
+
+ /* Memory management related defines */
+@@ -56,10 +57,6 @@
+ /** For unknown Tag Name or Attribute Name (in Best Effort Mode) */
+ #define WBXML_PARSER_UNKNOWN_STRING ((WB_UTINY *)"unknown")
+
+-/** If you want to modify this define, change the 'entcode' variable length in parse_entity() too please */
+-#define WBXML_PARSER_MAX_ENTITY_CODE 999999
+-
+-
+ /**
+ * @brief The WBXML Application Token types
+ */
+@@ -1661,7 +1658,6 @@ static WBXMLError parse_extension(WBXMLParser *parser, WBXMLTokenType code_space
+ */
+ static WBXMLError parse_entity(WBXMLParser *parser, WBXMLBuffer **result)
+ {
+- WB_TINY entity[10];
+ WB_ULONG code = 0;
+ WBXMLError ret = WBXML_OK;
+
+@@ -1674,23 +1670,44 @@ static WBXMLError parse_entity(WBXMLParser *parser, WBXMLBuffer **result)
+ return ret;
+ }
+
+- /* Build Entity */
+- if ( code > WBXML_PARSER_MAX_ENTITY_CODE ) {
+- return WBXML_ERROR_ENTITY_CODE_OVERFLOW;
+- }
+-
+- /**
+- * WARNING: If you change the entity variable length (10 chars), change too
+- * 'WBXML_PARSER_MAX_ENTITY_CODE' defined in this file !
++ /*
++ * Convert the UCS-4 code to a UTF-8 encoded string.
+ */
+- sprintf(entity, "&#%u;", code);
+
+- /* Create result buffer */
+- if ( (*result = wbxml_buffer_create_from_cstr(entity)) == NULL ) {
+- return WBXML_ERROR_NOT_ENOUGH_MEMORY;
++ assert(code < 0x80000000);
++
++ if (code < 0x80)
++ {
++ /* For codes under 0x80, we don't need any fancy formatting. */
++ WB_TINY entity[2] = {(WB_TINY)code, 0};
++
++ /* Create result buffer */
++ if ( (*result = wbxml_buffer_create_from_cstr(entity)) == NULL ) {
++ return WBXML_ERROR_NOT_ENOUGH_MEMORY;
++ }
++
++ return WBXML_OK;
++ }
++ else
++ {
++ WB_TINY masks[5] = {0xFC, 0xF8, 0xF0, 0xE0, 0xC0};
++ WB_TINY entity[7] = {0, 0, 0, 0, 0, 0, 0};
++
++ int index = 5;
++ while (code >= 0x40)
++ {
++ entity[index] = 0x80 | (code & 0x3F);
++ code >>= 6; index--;
++ }
++ entity[index] = masks[index] | code;
++
++ /* Create result buffer */
++ if ( (*result = wbxml_buffer_create_from_cstr(entity + index)) == NULL ) {
++ return WBXML_ERROR_NOT_ENOUGH_MEMORY;
++ }
++
++ return WBXML_OK;
+ }
+-
+- return WBXML_OK;
+ }
+
+
diff --git a/recipes/opensync/wbxml2/05-syncml-fixes.patch b/recipes/opensync/wbxml2/05-syncml-fixes.patch
new file mode 100644
index 0000000000..855b100779
--- /dev/null
+++ b/recipes/opensync/wbxml2/05-syncml-fixes.patch
@@ -0,0 +1,124 @@
+diff -ru wbxml2-0.9.2-original/src/wbxml_encoder.c wbxml2-0.9.2/src/wbxml_encoder.c
+--- wbxml2-0.9.2-original/src/wbxml_encoder.c 2006-07-11 13:47:45.000000000 +0200
++++ wbxml2-0.9.2/src/wbxml_encoder.c 2008-06-20 11:24:17.000000000 +0200
+@@ -1936,7 +1936,8 @@
+ #if defined( WBXML_SUPPORT_SYNCML )
+ /* If this is a SyncML document ? */
+ if ((encoder->lang->langID == WBXML_LANG_SYNCML_SYNCML10) ||
+- (encoder->lang->langID == WBXML_LANG_SYNCML_SYNCML11))
++ (encoder->lang->langID == WBXML_LANG_SYNCML_SYNCML11) ||
++ (encoder->lang->langID == WBXML_LANG_SYNCML_SYNCML12))
+ {
+ /** @todo We must check too if we are in a <Type> */
+
+@@ -4019,7 +4020,8 @@
+ #if defined( WBXML_SUPPORT_SYNCML )
+ /* Change text in <Type> from "application/vnd.syncml-devinf+wbxml" to "application/vnd.syncml-devinf+xml" */
+ if (((encoder->lang->langID == WBXML_LANG_SYNCML_SYNCML10) ||
+- (encoder->lang->langID == WBXML_LANG_SYNCML_SYNCML11)) &&
++ (encoder->lang->langID == WBXML_LANG_SYNCML_SYNCML11) ||
++ (encoder->lang->langID == WBXML_LANG_SYNCML_SYNCML12)) &&
+ (encoder->current_tag != NULL) &&
+ (encoder->current_tag->wbxmlCodePage == 0x01 ) &&
+ (encoder->current_tag->wbxmlToken == 0x13 ) &&
+diff -ru wbxml2-0.9.2-original/src/wbxml_tables.c wbxml2-0.9.2/src/wbxml_tables.c
+--- wbxml2-0.9.2-original/src/wbxml_tables.c 2006-07-11 13:47:45.000000000 +0200
++++ wbxml2-0.9.2/src/wbxml_tables.c 2008-06-20 11:28:18.000000000 +0200
+@@ -1601,21 +1601,21 @@
+ #if defined( WBXML_SUPPORT_SYNCML )
+
+ const WBXMLNameSpaceEntry sv_syncml_syncml10_ns_table[] = {
+- { "syncml:SYNCML1.0", 0x00 }, /**< Code Page 0: SYNCML1.0 */
++ { "SYNCML:SYNCML1.0", 0x00 }, /**< Code Page 0: SYNCML1.0 */
+ { "syncml:metinf", 0x01 }, /**< Code Page 1: metinf */
+ { NULL, 0x00 }
+ };
+
+
+ const WBXMLNameSpaceEntry sv_syncml_syncml11_ns_table[] = {
+- { "syncml:SYNCML1.1", 0x00 }, /**< Code Page 0: SYNCML1.1 */
++ { "SYNCML:SYNCML1.1", 0x00 }, /**< Code Page 0: SYNCML1.1 */
+ { "syncml:metinf", 0x01 }, /**< Code Page 1: metinf */
+ { NULL, 0x00 }
+ };
+
+
+ const WBXMLNameSpaceEntry sv_syncml_syncml12_ns_table[] = {
+- { "syncml:SYNCML1.2", 0x00 }, /**< Code Page 0: SYNCML1.2 */
++ { "SYNCML:SYNCML1.2", 0x00 }, /**< Code Page 0: SYNCML1.2 */
+ { "syncml:metinf", 0x01 }, /**< Code Page 1: metinf */
+ { NULL, 0x00 }
+ };
+diff -ru wbxml2-0.9.2-original/src/wbxml_tree.c wbxml2-0.9.2/src/wbxml_tree.c
+--- wbxml2-0.9.2-original/src/wbxml_tree.c 2006-07-11 13:47:45.000000000 +0200
++++ wbxml2-0.9.2/src/wbxml_tree.c 2008-06-20 11:33:54.000000000 +0200
+@@ -244,7 +244,10 @@
+ }
+ else {
+ if ((ret = wbxml_tree_clb_ctx.error) != WBXML_OK)
++ {
++ WBXML_ERROR((WBXML_CONV, "xml2wbxml conversion failed - context error %i", ret));
+ wbxml_tree_destroy(wbxml_tree_clb_ctx.tree);
++ }
+ else
+ *tree = wbxml_tree_clb_ctx.tree;
+ }
+@@ -798,11 +801,20 @@
+ {
+ /* Check <Type> value */
+ if ((tmp_node->children != NULL) && (tmp_node->children->type == WBXML_TREE_TEXT_NODE)) {
++ /* This function is used by wbxml and xml callbacks.
++ * So content types must be handled for both situations.
++ */
++
+ /* application/vnd.syncml-devinf+wbxml */
+ if (wbxml_buffer_compare_cstr(tmp_node->children->content, "application/vnd.syncml-devinf+wbxml") == 0) {
+ return WBXML_SYNCML_DATA_TYPE_WBXML;
+ }
+
++ /* application/vnd.syncml-devinf+xml */
++ if (wbxml_buffer_compare_cstr(tmp_node->children->content, "application/vnd.syncml-devinf+xml") == 0) {
++ return WBXML_SYNCML_DATA_TYPE_NORMAL;
++ }
++
+ /* text/clear */
+ if (wbxml_buffer_compare_cstr(tmp_node->children->content, "text/clear") == 0) {
+ return WBXML_SYNCML_DATA_TYPE_CLEAR;
+diff -ru wbxml2-0.9.2-original/src/wbxml_tree_clb_xml.c wbxml2-0.9.2/src/wbxml_tree_clb_xml.c
+--- wbxml2-0.9.2-original/src/wbxml_tree_clb_xml.c 2006-07-11 13:47:46.000000000 +0200
++++ wbxml2-0.9.2/src/wbxml_tree_clb_xml.c 2008-06-20 11:39:27.000000000 +0200
+@@ -142,7 +142,7 @@
+ #if defined( WBXML_SUPPORT_SYNCML )
+
+ /* If this is an embedded (not root) "DevInf" document, skip it */
+- if ((WBXML_STRCMP(localName, "DevInf") == 0) &&
++ if ((WBXML_STRCMP(localName, "syncml:devinf:DevInf") == 0) &&
+ (tree_ctx->current != NULL))
+ {
+ tree_ctx->skip_start = XML_GetCurrentByteIndex(tree_ctx->xml_parser);
+@@ -192,7 +192,7 @@
+ /* End of skipped node */
+
+ #if defined( WBXML_SUPPORT_SYNCML )
+- if (WBXML_STRCMP(localName, "DevInf") == 0) {
++ if (WBXML_STRCMP(localName, "syncml:devinf:DevInf") == 0) {
+ /* Get embedded DevInf Document */
+ devinf_doc = wbxml_buffer_create(tree_ctx->input_buff + tree_ctx->skip_start,
+ XML_GetCurrentByteIndex(tree_ctx->xml_parser) - tree_ctx->skip_start,
+@@ -210,6 +210,16 @@
+ return;
+ }
+
++ /* Add doctype to give the XML parser a chance
++ * SyncML 1.2 is downward compatible to older versions.
++ */
++ if (!wbxml_buffer_insert_cstr(devinf_doc, "<!DOCTYPE DevInf PUBLIC '-//SYNCML//DTD DevInf 1.2//EN' 'http://www.openmobilealliance.org/tech/DTD/OMA-SyncML-Device_Information-DTD-1.2.dtd' >\n", 0))
++ {
++ tree_ctx->error = WBXML_ERROR_NOT_ENOUGH_MEMORY;
++ wbxml_buffer_destroy(devinf_doc);
++ return;
++ }
++
+ WBXML_DEBUG((WBXML_PARSER, "\t DevInf Doc : '%s'", wbxml_buffer_get_cstr(devinf_doc)));
+
+ /* Parse 'DevInf' Document */
diff --git a/recipes/opensync/wbxml2/06-no-install-docs.patch b/recipes/opensync/wbxml2/06-no-install-docs.patch
new file mode 100644
index 0000000000..acfe692d90
--- /dev/null
+++ b/recipes/opensync/wbxml2/06-no-install-docs.patch
@@ -0,0 +1,14 @@
+diff -urP wbxml2-0.9.2/Makefile.am wbxml2-0.9.2.x/Makefile.am
+--- wbxml2-0.9.2/Makefile.am 2006-07-11 14:47:43.000000000 +0300
++++ wbxml2-0.9.2.x/Makefile.am 2006-08-08 22:26:18.000000000 +0300
+@@ -24,10 +24,6 @@
+ TODO\
+ doxygen.h
+
+-install-data-local:
+- $(mkinstalldirs) $(DESTDIR)$(wbxmldocdir)/manual
+- cp -Rp doc/* $(DESTDIR)$(wbxmldocdir)/manual
+-
+ dist-bz2: distdir
+ sed -e "s/tar.gz/tar.bz2/g" $(distdir)/wbxml2.spec > $(distdir)/wbxml2.spec.aux
+ mv $(distdir)/wbxml2.spec.aux $(distdir)/wbxml2.spec
diff --git a/recipes/opensync/wbxml2/07-current_attr_null.patch b/recipes/opensync/wbxml2/07-current_attr_null.patch
new file mode 100644
index 0000000000..2b74f594d3
--- /dev/null
+++ b/recipes/opensync/wbxml2/07-current_attr_null.patch
@@ -0,0 +1,22 @@
+--- wbxml2-0.9.2/src/wbxml_encoder.orig.c 2008-01-20 01:25:46.000000000 +0100
++++ wbxml2-0.9.2/src/wbxml_encoder.c 2008-01-20 01:26:25.000000000 +0100
+@@ -1875,6 +1875,9 @@
+ #if defined( WBXML_SUPPORT_SI )
+ case WBXML_LANG_SI10:
+ /* SI 1.0: Encode date for 'created' and 'si-expires' attributes */
++ if (encoder->current_attr == NULL)
++ break;
++
+ if ((encoder->current_attr->wbxmlCodePage == 0x00) &&
+ ((encoder->current_attr->wbxmlToken == 0x0a) || (encoder->current_attr->wbxmlToken == 0x10)))
+ {
+@@ -1886,6 +1889,9 @@
+ #if defined( WBXML_SUPPORT_EMN )
+ case WBXML_LANG_EMN10:
+ /* EMN 1.0: Encode date for 'timestamp' attribute */
++ if (encoder->current_attr == NULL)
++ break;
++
+ if ((encoder->current_attr->wbxmlCodePage == 0x00) && (encoder->current_attr->wbxmlToken == 0x05))
+ {
+ return wbxml_encode_datetime(encoder, buffer);
diff --git a/recipes/opensync/wbxml2/08-maxsize-translation-table.patch b/recipes/opensync/wbxml2/08-maxsize-translation-table.patch
new file mode 100644
index 0000000000..ebcda89c72
--- /dev/null
+++ b/recipes/opensync/wbxml2/08-maxsize-translation-table.patch
@@ -0,0 +1,17 @@
+#libwbxml2-0: Size changed to MaxSize in OMA DS 1.2 DevInf
+#
+#The normale Size tag was changed to MaxSize in OMA DS 1.2 Device
+#Information. The number in the stringtable does not changed. So
+#the order looks a little bit "funny".
+
+--- src/wbxml_tables.c.orig 2008-09-01 15:05:22.000000000 +0200
++++ src/wbxml_tables.c 2008-09-01 15:05:58.000000000 +0200
+@@ -1891,7 +1891,7 @@
+ { "Rx", 0x00, 0x19 },
+ { "Rx-Pref", 0x00, 0x1a },
+ { "SharedMem", 0x00, 0x1b },
+- { "Size", 0x00, 0x1c },
++ { "MaxSize", 0x00, 0x1c },
+ { "SourceRef", 0x00, 0x1d },
+ { "SwV", 0x00, 0x1e },
+ { "SyncCap", 0x00, 0x1f },
diff --git a/recipes/opensync/wbxml2_0.9.2.bb b/recipes/opensync/wbxml2_0.9.2.bb
new file mode 100644
index 0000000000..a45e1c6d66
--- /dev/null
+++ b/recipes/opensync/wbxml2_0.9.2.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "WBXML parsing and encoding library"
+LICENSE = "LGPL"
+
+DEPENDS = "expat popt"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/wbxmllib/${PN}-${PV}.tar.gz \
+ file://00-fix-includes.patch;patch=1 \
+ file://01-anonymous-support-and-misc-fixes.patch;patch=1 \
+ file://02-namespaces.patch;patch=1 \
+ file://04_saxlike_entity_parsing.patch;patch=1 \
+ file://05-syncml-fixes.patch;patch=1 \
+ file://06-no-install-docs.patch;patch=1 \
+ file://07-current_attr_null.patch;patch=1 \
+ file://08-maxsize-translation-table.patch;patch=1;pnum=0 \
+ "
+
+inherit autotools pkgconfig
+
+do_stage() {
+ autotools_stage_all
+}
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}"
+FILES_${PN} = "${libdir}/*.so.*"
+
+
+